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

"Bill O'Donnell" <[email protected]>
Newsgroups gmane.comp.file-systems.xfs.general
Message-ID <[email protected]>
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 <[email protected]>
> > ---
> >  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
> > [email protected]
> > http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.