xfs
[Top] [All Lists]

[PATCH] xfsprogs: allow xfs_freeze to work on non-xfs filesystems

To: xfs mailing list <xfs@xxxxxxxxxxx>
Subject: [PATCH] xfsprogs: allow xfs_freeze to work on non-xfs filesystems
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Wed, 14 Jan 2009 17:05:24 -0600
User-agent: Thunderbird 2.0.0.19 (X11/20090105)
allow xfs_freeze to freeze "foreign" filesystems

Now that the freeze ioctl has been elevated to the VFS,
let's let xfs_io and xfs_freeze freeze other filesystems
as well - add the CMD_FOREIGN_OK flag to freeze & thaw.

I think the worst that will happen on older kernels is that
the command will fail with ENOSYS or EINVAL....

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
---

diff --git a/io/freeze.c b/io/freeze.c
index 334b0cf..08f4d47 100644
--- a/io/freeze.c
+++ b/io/freeze.c
@@ -66,14 +66,14 @@ freeze_init(void)
        freeze_cmd.cfunc = freeze_f;
        freeze_cmd.argmin = 0;
        freeze_cmd.argmax = 0;
-       freeze_cmd.flags = CMD_NOMAP_OK;
+       freeze_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
        freeze_cmd.oneline = _("freeze filesystem of current file");
 
        thaw_cmd.name = _("thaw");
        thaw_cmd.cfunc = thaw_f;
        thaw_cmd.argmin = 0;
        thaw_cmd.argmax = 0;
-       thaw_cmd.flags = CMD_NOMAP_OK;
+       thaw_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
        thaw_cmd.oneline = _("unfreeze filesystem of current file");
 
        if (expert) {
diff --git a/io/xfs_freeze.sh b/io/xfs_freeze.sh
index 0aeeae6..45e20d2 100644
--- a/io/xfs_freeze.sh
+++ b/io/xfs_freeze.sh
@@ -33,11 +33,11 @@ if [ "$1" = "" ]; then
 fi
 
 if $FREEZE ; then
-       $DIRNAME/xfs_io -r -p xfs_freeze -x -c "freeze" "$1"
+       $DIRNAME/xfs_io -F -r -p xfs_freeze -x -c "freeze" "$1"
        status=$?
        [ $status -ne 0 ] && exit $status
 elif $THAW ; then
-       $DIRNAME/xfs_io -r -p xfs_freeze -x -c "thaw" "$1"
+       $DIRNAME/xfs_io -F -r -p xfs_freeze -x -c "thaw" "$1"
        status=$?
        [ $status -ne 0 ] && exit $status
 else


<Prev in Thread] Current Thread [Next in Thread>