aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorCraig Rodrigues <rodrigc@FreeBSD.org>2006-12-09 01:49:19 +0000
committerCraig Rodrigues <rodrigc@FreeBSD.org>2006-12-09 01:49:19 +0000
commite9022ef898a64e68b9f2ef8314f34310ccf1fc80 (patch)
treea95928b35eb0f91c4f663288223ef0a0720ded49 /sys
parent6890d7af94ea0583926e295cd8a370144886d4f4 (diff)
downloadsrc-e9022ef898a64e68b9f2ef8314f34310ccf1fc80.tar.gz
src-e9022ef898a64e68b9f2ef8314f34310ccf1fc80.zip
Minor cleanup. If we are doing a mount update, and we pass in
an "export" flag indicating that we are trying to NFS export the filesystem, and the MSDOSFS_LARGEFS flag is set on the filesystem, then deny the mount update and export request. Otherwise, let the full mount update proceed normally. MSDOSFS_LARGES and NFS don't mix because of the way inodes are calculated for MSDOSFS_LARGEFS. MFC after: 3 days
Notes
Notes: svn path=/head/; revision=165022
Diffstat (limited to 'sys')
-rw-r--r--sys/fs/msdosfs/msdosfs_vfsops.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c
index b6d81f400f60..eb872bcb7216 100644
--- a/sys/fs/msdosfs/msdosfs_vfsops.c
+++ b/sys/fs/msdosfs/msdosfs_vfsops.c
@@ -262,11 +262,15 @@ msdosfs_mount(struct mount *mp, struct thread *td)
pmp = VFSTOMSDOSFS(mp);
if (vfs_flagopt(mp->mnt_optnew, "export", NULL, 0)) {
- /* Process export requests. */
- if ((pmp->pm_flags & MSDOSFS_LARGEFS) != 0)
+ /*
+ * Forbid export requests if filesystem has
+ * MSDOSFS_LARGEFS flag set.
+ */
+ if ((pmp->pm_flags & MSDOSFS_LARGEFS) != 0) {
+ vfs_mount_error(mp,
+ "MSDOSFS_LARGEFS flag set, cannot export");
return (EOPNOTSUPP);
- else
- return (0);
+ }
}
if (!(pmp->pm_flags & MSDOSFSMNT_RONLY) &&
vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0)) {