mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
udev_sync: cookie_set=1 on each dm_task_set_cookie call
cookie_set variable found in the struct dm_task should be always set to 1 after dm_task_set_cookie_call, even if udev_sync is disabled as the cookie itself carries synchronization informations *as well as* extra flags to control other aspects of udev support. For example, one could disable the synchronization itself, but still direct the libdm code to disable library fallback via DM_UDEV_DISABLE_LIBRARY_FALLBACK flag. These extra flags still need to be carried out! A concrete example: $ dmsetup create test --table "0 1 zero" --noudevsync This disables synchronization with udev. As the --verifyudev option is not used, we don't want to do any corrections. In other words, we need DM_UDEV_DISABLE_LIBRARY_FALLBACK flag to be used. However, with --noudevsync this was not the case - the flag was ignored! This patch fixes the case when noudevsync is used but there are still some extra flags passed within the cookie flag part. The synchronization part of the cookie stays zero (which is ok as dm_udev_wait call on such a cookie is simply a NOOP).
This commit is contained in:
parent
fc849a9eeb
commit
a820a68619
@ -1,5 +1,6 @@
|
||||
Version 1.02.77 - 15th October 2012
|
||||
===================================
|
||||
Fix dm_task_set_cookie to properly process udev flags if udev_sync disabled.
|
||||
Support unmount of thin volumes from pool above thin pool threshold.
|
||||
Update man page to reflect that dm UUIDs are being mangled as well.
|
||||
Apply 'dmsetup mangle' for dm UUIDs besides dm names.
|
||||
|
@ -1838,6 +1838,7 @@ int dm_task_set_cookie(struct dm_task *dmt, uint32_t *cookie, uint16_t flags)
|
||||
if (dm_cookie_supported())
|
||||
dmt->event_nr = flags << DM_UDEV_FLAGS_SHIFT;
|
||||
*cookie = 0;
|
||||
dmt->cookie_set = 1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -2207,6 +2208,7 @@ int dm_task_set_cookie(struct dm_task *dmt, uint32_t *cookie, uint16_t flags)
|
||||
|
||||
if (!dm_udev_get_sync_support()) {
|
||||
*cookie = 0;
|
||||
dmt->cookie_set = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user