Blob Blame History Raw
From 6a5170a15f67a72bcec427a252d23ead4f3ae89a Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@suse.com>
Date: Thu, 26 Jul 2012 15:16:22 +0200
Subject: [PATCH] PATCH: add support for xfs / reiserfs separate journal
 device

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 | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh
index de9753a..a6cba12 100755
--- a/modules.d/95rootfs-block/mount-root.sh
+++ b/modules.d/95rootfs-block/mount-root.sh
@@ -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