]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
PATCH: add support for xfs / reiserfs separate journal device
authorFrederic Crozat <fcrozat@suse.com>
Thu, 26 Jul 2012 13:16:22 +0000 (15:16 +0200)
committerHarald Hoyer <harald@redhat.com>
Thu, 26 Jul 2012 14:38:14 +0000 (16:38 +0200)
xfs and reiserfs (among other) supports storing journal data to a
separate device. Unfortunately, XFS requires this information to boot
properly (reiserfs can embed the information in its metadata but you
might want to override it).

Attached patch ensure host information are stored in initramfs and also
allows to give data over kernel commandline.

--
Frederic Crozat <fcrozat@suse.com>
SUSE

>From a7c592b9bb7de0d7874ae51d02944a7eee2ec75b Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@suse.com>
Date: Tue, 24 Jul 2012 18:52:17 +0200
Subject: [PATCH] Add support for separate journal on reiserfs and xfs

modules.d/95rootfs-block/mount-root.sh

index de9753a6f43db23e7dd6c0a7de25cc22e807480a..a6cba12352be7fb5b5ef3e1f0f47e8d744182d6a 100755 (executable)
@@ -7,9 +7,26 @@ type det_fs >/dev/null 2>&1 || . /lib/fs-lib.sh
 
 mount_root() {
     local _ret
-    local _rflags_ro="$rflags,ro"
+    local _rflags_ro
     # sanity - determine/fix fstype
     rootfs=$(det_fs "${root#block:}" "$fstype")
+
+    journaldev=$(getarg root.journaldev)
+    if [ -n $journaldev ]; then
+        case "$rootfs" in
+            xfs)
+                rflags="${rflags:+${rflags},}logdev=$journaldev"
+                ;;
+            reiserfs)
+                fsckoptions="-j $journaldev $fsckoptions"
+                rflags="${rflags:+${rflags},}jdev=$journaldev"
+                ;;
+            *);;
+        esac
+    fi
+
+    _rflags_ro="$rflags,ro"
+
     while ! mount -t ${rootfs} -o "$_rflags_ro" "${root#block:}" "$NEWROOT"; do
         warn "Failed to mount -t ${rootfs} -o $_rflags_ro ${root#block:} $NEWROOT"
         fsck_ask_err