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

Eric Sandeen sandeen at sandeen.net
Wed Jan 14 17:05:24 CST 2009


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 at sandeen.net>
---

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





More information about the xfs mailing list