]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
contrib: add script to help resync journal code with kernel
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 27 Aug 2014 03:32:05 +0000 (23:32 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 27 Aug 2014 03:32:05 +0000 (23:32 -0400)
Add a script that handles (most) of the code massaging necessary to resync
{recovery,revoke}.c from the Linux kernel into e2fsprogs.

Usage: jbd2-resync.sh linux/fs/jbd2/revoke.c e2fsprogs/e2fsck/revoke.c

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
contrib/jbd2-resync.sh [new file with mode: 0755]

diff --git a/contrib/jbd2-resync.sh b/contrib/jbd2-resync.sh
new file mode 100755 (executable)
index 0000000..4133b63
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+if [ -z "$1" -o -z "$2" ]; then
+       echo "Usage: $0 kernel-file e2fsprogs-file"
+       exit 0
+fi
+
+# Transform a few things to fit the compatibility things defined in jfs_user.h.
+# Use the ext2fs_ endian conversion functions because they truncate oversized
+# inputs (e.g. passing a u32 to cpu_to_be16()) like the kernel versions and
+# unlike the libc6 versions.
+exec sed -e 's/JBD_/JFS_/g' \
+        -e 's/JBD2_/JFS_/g' \
+        -e 's/jbd2_journal_/journal_/g' \
+        -e 's/__be/__u/g' \
+        -e 's/struct kmem_cache/lkmem_cache_t/g' \
+        -e 's/cpu_to_be/ext2fs_cpu_to_be/g' \
+        -e 's/be\([0-9][0-9]\)_to_cpu/ext2fs_be\1_to_cpu/g' \
+        < "$1" > "$2"