summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_mount.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-02-24 01:46:43 +0000
committerkib <kib@FreeBSD.org>2015-02-24 01:46:43 +0000
commit9534a4a47238751d26b9766b4f4121b229bb6ec1 (patch)
tree1ed3eb08b18821f6e00c682c7f1146049634b0b9 /sys/kern/vfs_mount.c
parent7b2a7d1b7b661046fd05b9271b6692a87f4ddeab (diff)
downloadFreeBSD-src-9534a4a47238751d26b9766b4f4121b229bb6ec1.zip
FreeBSD-src-9534a4a47238751d26b9766b4f4121b229bb6ec1.tar.gz
MFC r278523:
In mountd, silence a race with the parallel unmount.
Diffstat (limited to 'sys/kern/vfs_mount.c')
-rw-r--r--sys/kern/vfs_mount.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index b2b4969..09fa7ed 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -888,12 +888,18 @@ vfs_domount_update(
ASSERT_VOP_ELOCKED(vp, __func__);
KASSERT((fsflags & MNT_UPDATE) != 0, ("MNT_UPDATE should be here"));
+ mp = vp->v_mount;
if ((vp->v_vflag & VV_ROOT) == 0) {
+ if (vfs_copyopt(*optlist, "export", &export, sizeof(export))
+ == 0)
+ error = EXDEV;
+ else
+ error = EINVAL;
vput(vp);
- return (EINVAL);
+ return (error);
}
- mp = vp->v_mount;
+
/*
* We only allow the filesystem to be reloaded if it
* is currently mounted read-only.
OpenPOWER on IntegriCloud