xfs
[Top] [All Lists]

[PATCH v3 3/3] xfs_quota: add case for foreign fs, disabled regardless o

To: linux-xfs@xxxxxxxxxxxxxxx
Subject: [PATCH v3 3/3] xfs_quota: add case for foreign fs, disabled regardless of foreign_allowed
From: "Bill O'Donnell" <billodo@xxxxxxxxxx>
Date: Thu, 15 Sep 2016 14:57:49 -0500
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1473953386-10242-4-git-send-email-billodo@xxxxxxxxxx>
References: <1473953386-10242-4-git-send-email-billodo@xxxxxxxxxx>
Some commands are disallowed for foreign filesystems,
regardless of whether or not the -f flag is thrown.
Add a case for this condition and improve commenting
and output messaging accordingly in init_check_command.

Signed-off-by: Bill O'Donnell <billodo@xxxxxxxxxx>
---
history:
v3: clarify foreign filesystem user output message.
v2: no change
v1: http://www.spinics.net/lists/linux-xfs/msg00685.html

 quota/init.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/quota/init.c b/quota/init.c
index 2c18c8b..3bebbb8 100644
--- a/quota/init.c
+++ b/quota/init.c
@@ -112,21 +112,29 @@ init_check_command(
        if (!fs_path)
                return 1;
 
-       /* Always run commands that we are told to skip here */
+       /* Always run commands that are valid for all fs types. */
        if (ct->flags & CMD_ALL_FSTYPES)
                return 1;
 
-       /* if it's an XFS filesystem, always run the command */
+       /* If it's an XFS filesystem, always run the command. */
        if (!(fs_path->fs_flags & FS_FOREIGN))
                return 1;
 
-       /* If the user specified foreign filesysetms are ok, run it */
+       /* If the user specified foreign filesystems are ok (-f), run cmd. */
        if (foreign_allowed &&
            (ct->flags & CMD_FLAG_FOREIGN_OK))
                return 1;
 
-       /* foreign filesystem and it's not a valid command! */
-       fprintf(stderr, _("%s command is for XFS filesystems only\n"),
+       /* If cmd not allowed on foreign fs, regardless of -f flag, skip it. */
+       if (!(ct->flags & CMD_FLAG_FOREIGN_OK)) {
+               fprintf(stderr, _("%s: command is for XFS filesystems only\n"),
+                       ct->name);
+               return 0;
+       }
+
+       /* foreign fs, but cmd only allowed via -f flag. Skip it. */
+       fprintf(stderr,
+               _("%s: foreign filesystem. Invoke xfs_quota with -f to 
enable.\n"),
                ct->name);
        return 0;
 }
-- 
2.7.4

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