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-head
mailing list