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
|