Cache check close RO opened device before reopen.
When check_check is used with --clear-needs-check-flag option, device needs to be opened in RW exclusive mode, but for this existing RO exlusive open must be closed. LVM2 will consider version 0.5.3 as a version without flag support for cache_check since it cannot successfully pass cache_check. TODO: when 'RO' parts detects there is nothing to 'clear' it should completely skip RW open to avoid udev rule processing.
This commit is contained in:
parent
3a881e9513
commit
271ff67f91
@ -220,7 +220,9 @@ namespace {
|
|||||||
write_superblock(bm, sb);
|
write_superblock(bm, sb);
|
||||||
}
|
}
|
||||||
|
|
||||||
error_state metadata_check(block_manager<>::ptr bm, flags const &fs) {
|
error_state metadata_check(string const &path, flags const &fs) {
|
||||||
|
block_manager<>::ptr bm = open_bm(path, block_manager<>::READ_ONLY);
|
||||||
|
|
||||||
nested_output out(cerr, 2);
|
nested_output out(cerr, 2);
|
||||||
if (fs.quiet_)
|
if (fs.quiet_)
|
||||||
out.disable();
|
out.disable();
|
||||||
@ -295,8 +297,7 @@ namespace {
|
|||||||
throw runtime_error(msg.str());
|
throw runtime_error(msg.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
block_manager<>::ptr bm = open_bm(path, block_manager<>::READ_ONLY);
|
err = metadata_check(path, fs);
|
||||||
err = metadata_check(bm, fs);
|
|
||||||
|
|
||||||
bool success = false;
|
bool success = false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user