diff options
author | daichi <daichi@FreeBSD.org> | 2007-10-14 13:49:30 +0000 |
---|---|---|
committer | daichi <daichi@FreeBSD.org> | 2007-10-14 13:49:30 +0000 |
commit | bf7aeca620ccf8e886a32e2f04f82d808264471f (patch) | |
tree | 0e057f152fb098b47a9543b6a6b50ffc36a53de1 /sys/fs/unionfs/union_vfsops.c | |
parent | f3fd8ae96cc6ea54734a56aada5cca712888788e (diff) | |
download | FreeBSD-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.c | 5 |
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; /* |