1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/lib/activate
Zdenek Kabelac 4411fe2ba8 activation: synchronize before removing devices
Udev is running udev-rule action upon 'resume'.

However lvm2 in special case is doing replacement of
'soon-to-be-removed' device with 'error' target for resuming
and then follows actual removal - the sequence is usually quick,
so when udev start action - it can result in 'strange' error
message in kernel log like:

Process '/usr/sbin/dmsetup info -j 253 -m 17 -c --nameprefixes --noheadings --rows -o name,uuid,suspended' failed with exit code 1.

To avoid this - we need to ensure there is synchronization wait for udev
between 'resume'  and 'remove' part of this process.

However existing code put strict requirement to avoid synchronizing with
udev inside critical section - but this originally came from requirement
to not do anything special while there could be devices in
suspend-state. Now we are able to see differnce between critical section
with or without suspended devices.  For udev synchronization only
suspended devices are prohibited to be there - so slightly relax
condition and allow calling and using 'fs_sync()' even inside critical
section - but there must not be any suspended device.
2019-03-20 14:39:09 +01:00
..
activate.c dev_manager: add dev_manager_remove_dm_major_minor 2019-03-20 14:37:10 +01:00
activate.h vdo: add simple wrapper for getting pool percentage 2019-01-21 12:53:16 +01:00
dev_manager.c activation: synchronize before removing devices 2019-03-20 14:39:09 +01:00
dev_manager.h dev_manager: add dev_manager_remove_dm_major_minor 2019-03-20 14:37:10 +01:00
fs.c activation: synchronize before removing devices 2019-03-20 14:39:09 +01:00
fs.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
targets.h doc: change fsf address 2016-01-21 12:11:37 +01:00