From: Eric Sandeen Date: Tue, 10 Feb 2009 20:41:51 +0000 (-0600) Subject: allow xfs_freeze to freeze "foreign" filesystems X-Git-Tag: v3.0.1~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd67dabbce2a01ab7f3da2effce3a252ae25248a;p=thirdparty%2Fxfsprogs-dev.git 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 Reviewed-by: Christoph Hellwig --- diff --git a/io/freeze.c b/io/freeze.c index 334b0cf7f..08f4d47f9 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 0aeeae650..45e20d27c 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 diff --git a/man/man8/xfs_freeze.8 b/man/man8/xfs_freeze.8 index ef5d1ec9f..97c791199 100644 --- a/man/man8/xfs_freeze.8 +++ b/man/man8/xfs_freeze.8 @@ -61,6 +61,10 @@ being mounted. The XFS .B nouuid mount option can be used to circumvent this issue. +.PP +In Linux kernel version 2.6.29, the interface which XFS uses to freeze +and unfreeze was elevated to the VFS, so that this tool can now be +used on many other Linux filesystems. .SH SEE ALSO .BR xfs (5), .BR lvm (8),