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
|