mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
monitoring: sync /dev content before contacting dmeventd for monitor/unmonitor
dmeventd daemon may call further code itself that looks at /dev, e.g. via dmeventd_lvm2_command call. We need to have a consistent view of the /dev content at that time. Therefore, sync /dev content before calling monitoring hook which contacts dmeventd. This problem was quite hidden before, but now it has manifested itself because of recent additions to dev-cache code where we started looking at device holders as seen in sysfs. What happened here was that the device was already in sysfs, but not yet under /dev and this triggered the new error message sometimes: log_error("%s: failed to find associated device structure for holder %s.", devname, devpath); This problem has manifested recently in our api/pytest.sh test from testsuite where we create thin pool LVs and thin LVs and hence it also causes dmeventd to be used as well and these error messages were visible there.
This commit is contained in:
parent
82d92009ae
commit
6129d2e64d
@ -1746,6 +1746,12 @@ int monitor_dev_for_events(struct cmd_context *cmd, const struct logical_volume
|
||||
if (test_mode())
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Sync all queued device names/symlinks so dmeventd
|
||||
* has consistent view during possible device scan.
|
||||
*/
|
||||
fs_unlock();
|
||||
|
||||
/* FIXME specify events */
|
||||
if (!monitor_fn(seg, 0)) {
|
||||
log_error("%s: %s segment monitoring function failed.",
|
||||
|
Loading…
Reference in New Issue
Block a user