From: Franck Bui Date: Wed, 28 Feb 2018 09:36:06 +0000 (+0100) Subject: rules: skip btrfs check if devices are not ready in 64-btrfs.rules (#8304) X-Git-Tag: v238~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f8adf25d658a9c3965e2c88d241aefeabf5de601;p=thirdparty%2Fsystemd.git rules: skip btrfs check if devices are not ready in 64-btrfs.rules (#8304) If any devices are marked with 'SYSTEMD_READY=0' then we shouldn't run any btrfs check on them. Indeed there's no point in running "btrfs ready" on devices that already have SYSTEMD_READY=0 set. Most probably such devices are members of a higher layer aggregate device such as dm-multipath or software RAID. Doing IO on them wastes time at best, and may cause delays, timeouts, or even hangs at worst (think active-passive multipath or degraded RAID, for example). It was initially reported at: https://bugzilla.opensuse.org/show_bug.cgi?id=872929 --- diff --git a/rules/64-btrfs.rules.in b/rules/64-btrfs.rules.in index c3a0972f2e5..aad29afb8bf 100644 --- a/rules/64-btrfs.rules.in +++ b/rules/64-btrfs.rules.in @@ -3,6 +3,7 @@ SUBSYSTEM!="block", GOTO="btrfs_end" ACTION=="remove", GOTO="btrfs_end" ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end" +ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end" # let the kernel know about this btrfs filesystem, and check if it is complete IMPORT{builtin}="btrfs ready $devnode"