svn commit: r247619 - head/sys/fs/nullfs

Jilles Tjoelker jilles at FreeBSD.org
Sat Mar 2 12:42:24 UTC 2013


Author: jilles
Date: Sat Mar  2 12:42:23 2013
New Revision: 247619
URL: http://svnweb.freebsd.org/changeset/base/247619

Log:
  nullfs: Improve f_flags in statfs().
  
  Include some flags of the nullfs mount itself:
  MNT_RDONLY, MNT_NOEXEC, MNT_NOSUID, MNT_UNION, MNT_NOSYMFOLLOW.
  
  This allows userland code calling statfs() or fstatfs() to see these flags.
  In particular, this allows opendir() to detect that a -t nullfs -o union
  mount needs deduplication (otherwise at least . and .. are returned twice)
  and allows rtld to detect a -t nullfs -o noexec mount as noexec.
  
  Turn off the MNT_ROOTFS flag from the underlying filesystem because the
  nullfs mount is definitely not the root filesystem.
  
  Reviewed by:	kib
  MFC after:	1 week

Modified:
  head/sys/fs/nullfs/null_vfsops.c

Modified: head/sys/fs/nullfs/null_vfsops.c
==============================================================================
--- head/sys/fs/nullfs/null_vfsops.c	Sat Mar  2 11:33:21 2013	(r247618)
+++ head/sys/fs/nullfs/null_vfsops.c	Sat Mar  2 12:42:23 2013	(r247619)
@@ -313,7 +313,8 @@ nullfs_statfs(mp, sbp)
 
 	/* now copy across the "interesting" information and fake the rest */
 	sbp->f_type = mstat.f_type;
-	sbp->f_flags = mstat.f_flags;
+	sbp->f_flags = (sbp->f_flags & (MNT_RDONLY | MNT_NOEXEC | MNT_NOSUID |
+	    MNT_UNION | MNT_NOSYMFOLLOW)) | (mstat.f_flags & ~MNT_ROOTFS);
 	sbp->f_bsize = mstat.f_bsize;
 	sbp->f_iosize = mstat.f_iosize;
 	sbp->f_blocks = mstat.f_blocks;


More information about the svn-src-all mailing list