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;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to