- 07 1月, 2017 1 次提交
-
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1349696 When creating a vHBA, the process is to feed XML to nodeDeviceCreateXML that lists the <parent> scsi_hostX to use to create the vHBA. However, between reboots, it's possible that the <parent> changes its scsi_hostX to scsi_hostY and saved XML to perform the creation will either fail or create a vHBA using the wrong parent. So add the ability to provide "wwnn" and "wwpn" or "fabric_wwn" to the <parent> instead of a name of the scsi_hostN that is the parent. The allowed XML will thus be: <parent>scsi_host3</parent> (current) or <parent wwnn='$WWNN' wwpn='$WWPN'/> or <parent fabric_wwn='$WWNN'/> Using the wwnn/wwpn or fabric_wwn ensures the same 'scsi_hostN' is selected between hardware reconfigs or host reboots. The fabric_wwn Using the wwnn/wwpn pair will provide the most specific search option, while fabric_wwn will at least ensure usage of the same SAN, but maybe not the same scsi_hostN. This patch will add the new fields to the nodedev.rng for input purposes only since the input XML is essentially thrown away, no need to Format the values since they'd already be printed as part of the scsi_host data block. New API virNodeDeviceGetParentHostByWWNs will take the parent "wwnn" and "wwpn" in order to search the list of devices for matching capability data fields wwnn and wwpn. New API virNodeDeviceGetParentHostByFabricWWN will take the parent "fabric_wwn" in order to search the list of devices for matching capability data field fabric_wwn.
-
- 05 1月, 2017 1 次提交
-
-
由 John Ferlan 提交于
If a <parent> is not supplied in the XML used to create a non-persistent vHBA, then instead of failing, let's try to find a "vports" capable node device and use that. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
- 14 10月, 2016 1 次提交
-
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1357416 Rather than return a 0 or -1 and the *result string, return just the result string to the caller. Alter all the callers to handle the different return. As a side effect or result of this, it's much clearer that we cannot just assign the returned string into the scsi_host wwnn, wwpn, and fabric_wwn fields - rather we should fetch a temporary string, then as long as our fetch was good, VIR_FREE what may have been there, and STEAL what we just got. This fixes a memory leak in the virNodeDeviceCreateXML code path through find_new_device and nodeDeviceLookupSCSIHostByWWN which will continually call nodeDeviceSysfsGetSCSIHostCaps until the expected wwnn/wwpn is found in the device object capabilities. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
- 12 10月, 2016 1 次提交
-
-
由 Martin Kletzander 提交于
This way we get reference counting and we can get rid of locking function. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
- 29 8月, 2016 1 次提交
-
-
由 Roman Bogorodskiy 提交于
Test 12 from objecteventtest (createXML add event) segaults on FreeBSD with bus error. At some point it calls testNodeDeviceDestroy() from the test driver. And it fails when it tries to unlock the device in the "out:" label of this function. Unlocking fails because the previous step was a call to virNodeDeviceObjRemove from conf/node_device_conf.c. This function removes the given device from the device list and cleans up the object, including destroying of its mutex. However, it does not nullify the pointer that was given to it. As a result, we end up in testNodeDeviceDestroy() here: out: if (obj) virNodeDeviceObjUnlock(obj); And instead of skipping this, we try to do Unlock and fail because of malformed mutex. Change virNodeDeviceObjRemove to use double pointer and set pointer to NULL.
-
- 15 8月, 2016 1 次提交
-
-
由 Jovanka Gulicoska 提交于
This event is emitted when a nodedev XML definition is updated, like when cdrom media is changed in a cdrom block device. Also includes node device update event implementation for udev backend, virsh nodedev-event support, and event-test support
-
- 02 8月, 2016 2 次提交
-
-
由 Jovanka Gulicoska 提交于
-
由 Jovanka Gulicoska 提交于
-
- 08 6月, 2016 1 次提交
-
-
由 Jovanka Gulicoska 提交于
-
- 07 6月, 2016 31 次提交
-
-
由 Ján Tomko 提交于
Filter out some subsystems we are not interested in.
-
由 Ján Tomko 提交于
Instead of the custom out and out_unlock.
-
由 Ján Tomko 提交于
Remove ret variables and labels from functions where there is no cleanup to be done.
-
由 Ján Tomko 提交于
-
由 Ján Tomko 提交于
There is no cleanup to be done.
-
由 Ján Tomko 提交于
Remove unnecessary ret variable and return early if we have no media to save on indentation.
-
由 Ján Tomko 提交于
Use virTrimSpaces instead of a custom implementation.
-
由 Ján Tomko 提交于
Also use the more common "Unable to initialize mutex" string and virReportSystemError instead of virStrerror.
-
由 Ján Tomko 提交于
They are no longer used.
-
由 Ján Tomko 提交于
Open code the call to udev_device_get_sysattr_value in the one place where it's needed.
-
由 Ján Tomko 提交于
Callers only check for an error or a specific integer value.
-
由 Ján Tomko 提交于
The callers only care for an error, and a missing attribute is simply NULL.
-
由 Ján Tomko 提交于
Most of the code paths free it right after converting it to an integer.
-
由 Ján Tomko 提交于
We only care about the failure, not a missing property.
-
由 Ján Tomko 提交于
There is no need to differentiate between PROPERTY_FOUND and PROPERTY_MISSING - we can just look if the string is non-NULL.
-
由 Ján Tomko 提交于
Error out on parsing errors and use a local const char pointer instead of chained ifs to check whether we found a match.
-
由 Ján Tomko 提交于
Since the switch to VIR_STRDUP this function returns 1 on success, but the caller treats any non-zero value as failure.
-
由 Ján Tomko 提交于
Use udevHasDeviceProperty instead of udevGetStringProperty. We do not need to copy the string since we do not need it. Also add braces around the if body, since the change made syntax check complain.
-
由 Ján Tomko 提交于
-
由 Ján Tomko 提交于
Two out of three callers free it right after converting it to a number. Also change the comment at the beginning of the function, because the comment inside the function told me to.
-
由 Ján Tomko 提交于
Open code the error message.
-
由 Ján Tomko 提交于
Remove the debug message, open code the error in the two udevGetUint callers and use a more specific error in SCSI and PCI processing.
-
由 Ján Tomko 提交于
The wrapper adds an error message or a debug log. Since we already log the properties we get from udev as strings, there is no much use for the debug logs. Open code the error message and delete the function.
-
由 Ján Tomko 提交于
Use virStrToLong_ui instead of udevStrToLong_ui, reformat the code and report a more specific error message.
-
由 Ján Tomko 提交于
Instead of separating it into STRPEFIX and str + strlen.
-
由 Ján Tomko 提交于
A variable without use is pointless. Remove it, since we have no use for it.
-
由 Ján Tomko 提交于
-
由 Ján Tomko 提交于
If we have not allocated driver yet, there is nothing to cleanup.
-
由 Ján Tomko 提交于
Remove the ret variable and return early if there is no driver.
-
由 Ján Tomko 提交于
This will simplify cleanup.
-
由 Ján Tomko 提交于
Move pci_system_init and pci_system_cleanup into separate functions, to make the conditional compilation easier to read.
-