[PATCH] dracut: dmsquash-live: overlay module can be built-in the kernel

Federico Vaga <[email protected]> Wed, 20 Apr 2022 09:15:23 +0200
Newsgroups org.kernel.vger.initramfs
Message-ID <[email protected]>
The dmsquash-live module assumes that `overlay` is always a module.
Therefore, when `overlay` is built-in the kernel, this module will fail
to detect the presence of such a feature.

This patch adds a fallback mechanism to check also `/proc/filesystem`.
This is also what happens with the dracut NSF module when loading the
kernel module `rpc_pipefs`.

Signed-off-by: Federico Vaga <[email protected]>
---
 modules.d/90dmsquash-live/dmsquash-live-root.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index fd8a858a..b4a44e92 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -170,7 +170,7 @@ do_live_overlay() {
         fi
     fi
     if [ -n "$overlayfs" ]; then
-        if ! modprobe overlay; then
+        if ! (modprobe overlay || strstr "$(cat /proc/filesystems)" overlay); then
             if [ "$overlayfs" = required ]; then
                 die "OverlayFS is required but not available."
                 exit 1
-- 
2.27.0