[dm-devel] [PATCH 68/78] libmultipath: unset 'uid_attribute' on failure
Benjamin Marzinski
bmarzins at redhat.com
Fri Mar 27 04:10:37 UTC 2015
On Mon, Mar 16, 2015 at 01:36:55PM +0100, Hannes Reinecke wrote:
> Due to a race condition within udev the 'uid_attribute'
> might not always be set. So we should be zeroing the
> 'uid_attribute' when retrieving the uid by other means,
> otherwise the discovery process will blacklist the device.
Possibly I'm just missing obvious here, but I don't get the point of
zeroing out the uid_attribute. Won't it just get reset on the next call
to get_uid?
-Ben
>
> Signed-off-by: Hannes Reinecke <hare at suse.de>
> ---
> libmultipath/discovery.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
> index d5dda2c..8e6b228 100644
> --- a/libmultipath/discovery.c
> +++ b/libmultipath/discovery.c
> @@ -1497,13 +1497,17 @@ get_uid (struct path * pp)
> }
> if (len <= 0) {
> len = get_vpd_uid(pp);
> - if (len > 0)
> + if (len > 0) {
> origin = "sysfs";
> + pp->uid_attribute = NULL;
> + }
> }
> if (len <= 0) {
> len = get_udev_uid(pp, DEFAULT_UID_ATTRIBUTE);
> - if (len > 0)
> - origin = "udev";
> + if (len > 0) {
> + origin = "default";
> + pp->uid_attribute = DEFAULT_UID_ATTRIBUTE;
> + }
> }
> }
> if ( len < 0 ) {
> --
> 1.8.4.5
More information about the dm-devel
mailing list