diff options
author | kib <kib@FreeBSD.org> | 2015-02-24 01:46:43 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-02-24 01:46:43 +0000 |
commit | 9534a4a47238751d26b9766b4f4121b229bb6ec1 (patch) | |
tree | 1ed3eb08b18821f6e00c682c7f1146049634b0b9 /sys/kern/vfs_mount.c | |
parent | 7b2a7d1b7b661046fd05b9271b6692a87f4ddeab (diff) | |
download | FreeBSD-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.c | 10 |
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. |