summaryrefslogtreecommitdiffstats
path: root/sys/fs/unionfs/union_vfsops.c
diff options
context:
space:
mode:
authordaichi <daichi@FreeBSD.org>2007-10-14 13:49:30 +0000
committerdaichi <daichi@FreeBSD.org>2007-10-14 13:49:30 +0000
commitbf7aeca620ccf8e886a32e2f04f82d808264471f (patch)
tree0e057f152fb098b47a9543b6a6b50ffc36a53de1 /sys/fs/unionfs/union_vfsops.c
parentf3fd8ae96cc6ea54734a56aada5cca712888788e (diff)
downloadFreeBSD-src-bf7aeca620ccf8e886a32e2f04f82d808264471f.zip
FreeBSD-src-bf7aeca620ccf8e886a32e2f04f82d808264471f.tar.gz
- It has been become MPSAFE.
- Fixed lock panic issue under MPSAFE. - Fixed panic issue whenever it locks vnode with reclaim. - Fixed lock implementations not conforming to vnode_if.src style. Submitted by: Masanori Ozawa <ozawa@ongs.co.jp> (unionfs developer) Reviewed by: jeff, kensmith Approved by: re (kensmith) MFC after: 1 week
Diffstat (limited to 'sys/fs/unionfs/union_vfsops.c')
-rw-r--r--sys/fs/unionfs/union_vfsops.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/fs/unionfs/union_vfsops.c b/sys/fs/unionfs/union_vfsops.c
index cb7b504..34e3900 100644
--- a/sys/fs/unionfs/union_vfsops.c
+++ b/sys/fs/unionfs/union_vfsops.c
@@ -287,6 +287,11 @@ unionfs_domount(struct mount *mp, struct thread *td)
ump->um_ufile = ufile;
ump->um_copymode = copymode;
+ MNT_ILOCK(mp);
+ if ((lowerrootvp->v_mount->mnt_kern_flag & MNTK_MPSAFE) &&
+ (upperrootvp->v_mount->mnt_kern_flag & MNTK_MPSAFE))
+ mp->mnt_kern_flag |= MNTK_MPSAFE;
+ MNT_IUNLOCK(mp);
mp->mnt_data = (qaddr_t)ump;
/*
OpenPOWER on IntegriCloud