btrfs-progs: scan devices in preinit instead of init script

There is no gain to do device scan in init. Commonly we want to always
scan BTRFS devices to ensure that after boot raids are correctly linked.
It should be done before any init script tries to mount any raid FS.

Comparing init scripts and preinit scripts there are I think two primary
considerations. First is if user is expected to restart/reload/stop
given service on will. I think that there is no such reason for this as
user can easily enough just call btrfs utility it self. Second
consideration is if it makes sense to have it optional. This means if we
want to have ability to enable and disable given service. I think that
there is no such need in this case. It is pretty much doing nothing if
you don't have BTRFS FS connected and when you have you probably want to
scan it.

Signed-off-by: Karel Kočí <karel.koci@nic.cz>
This commit is contained in:
Karel Kočí 2019-08-05 13:47:17 +02:00 committed by Josef Schlehofer
parent d9020050b3
commit ae48f3f9e9
No known key found for this signature in database
GPG Key ID: B950216FE4329F4C
2 changed files with 6 additions and 8 deletions

View File

@ -79,8 +79,8 @@ define Package/btrfs-progs/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/btrfs.box $(1)/usr/bin/btrfs
$(foreach prog,$(boxprogs),$(LN) btrfs $(1)/usr/bin/$(prog);)
$(foreach prog,$(progs),$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(prog) $(1)/usr/bin/;)
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/btrfs-scan.init $(1)/etc/init.d/btrfs-scan
$(INSTALL_DIR) $(1)/lib/preinit
$(INSTALL_BIN) ./files/btrfs-scan.init $(1)/lib/preinit/85_btrfs_scan
endef
$(eval $(call BuildPackage,btrfs-progs))

View File

@ -1,9 +1,7 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2014 OpenWrt.org
#!/bin/sh
START=19
start() {
grep -q btrfs /proc/filesystems && /usr/bin/btrfs device scan
preinit_btrfs_scan() {
grep -vq btrfs /proc/filesystems || btrfs device scan
}
boot_hook_add preinit_main preinit_btrfs_scan