xfs
[Top] [All Lists]

[PATCH] xfsprogs: don't populate fs table with foreign fs paths unless f

To: xfs@xxxxxxxxxxx
Subject: [PATCH] xfsprogs: don't populate fs table with foreign fs paths unless foreign_allowed
From: "Bill O'Donnell" <billodo@xxxxxxxxxx>
Date: Mon, 29 Aug 2016 08:40:12 -0500
Delivered-to: xfs@xxxxxxxxxxx
Commits b20b6c2 and 29647c8 modified xfs_quota for use on
non-XFS filesystems. One modification in fs_initialise_mounts
(paths.c) resulted in an xfstest fail (xfs/261), due to foreign
fs paths entering the fs table.

This patch reverts the behavior in fs_initialise_mounts back
to skip populating the table with foreign paths, unless the
-f flag is thrown in xfs_quota to set foreign_allowed true.

Signed-off-by: Bill O'Donnell <billodo@xxxxxxxxxx>
---
 libxcmd/paths.c | 5 +++++
 quota/init.c    | 1 -
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/libxcmd/paths.c b/libxcmd/paths.c
index 4158688..7375c0e 100644
--- a/libxcmd/paths.c
+++ b/libxcmd/paths.c
@@ -34,6 +34,7 @@ extern char *progname;
 int fs_count;
 struct fs_path *fs_table;
 struct fs_path *fs_path;
+bool foreign_allowed = false;  /* foreign filesystems not allowed (default) */
 
 char *mtab_file;
 #define PROC_MOUNTS    "/proc/self/mounts"
@@ -311,6 +312,10 @@ fs_table_initialise_mounts(
                        return errno;
 
        while ((mnt = getmntent(mtp)) != NULL) {
+               /* don't populate if not XFS, and foreign fs disallowed */
+               if ((strcmp(mnt->mnt_type, "xfs") != 0) &&
+                   !foreign_allowed)
+                       continue;
                if (!realpath(mnt->mnt_dir, rmnt_dir))
                        continue;
                if (!realpath(mnt->mnt_fsname, rmnt_fsname))
diff --git a/quota/init.c b/quota/init.c
index 44be322..65e4dad 100644
--- a/quota/init.c
+++ b/quota/init.c
@@ -24,7 +24,6 @@
 char   *progname;
 int    exitcode;
 int    expert;
-bool   foreign_allowed = false;
 
 static char **projopts;        /* table of project names (cmdline) */
 static int nprojopts;  /* number of entries in name table. */
-- 
2.7.4

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