On Mon, Aug 29, 2016 at 08:13:23AM -0700, Darrick J. Wong wrote: > On Mon, Aug 29, 2016 at 08:40:12AM -0500, Bill O'Donnell wrote: > > 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) */ > > /me wonders if this would be better as a parameter to > fs_table_initialise_mounts() ? Hrmm, it could be, but my notion is that keeping it global is a bit cleaner than having to add automatics in 4 function calls. Thanks- Bill > > --D > > > > > 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 > > > > _______________________________________________ > > xfs mailing list > > xfs@xxxxxxxxxxx > > http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs