diff options
author | jhb <jhb@FreeBSD.org> | 2006-07-17 16:13:42 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-07-17 16:13:42 +0000 |
commit | f126d3e34beec1532f5572dc351de803173bf594 (patch) | |
tree | 63c7b3921a8d974f37b8c512127dceafc0423085 /sys/fs | |
parent | 5d507389114fdef17c1601dac3c0e68c44ea1541 (diff) | |
download | FreeBSD-src-f126d3e34beec1532f5572dc351de803173bf594.zip FreeBSD-src-f126d3e34beec1532f5572dc351de803173bf594.tar.gz |
Lock the smb share before doing a 'put' on it in smbfs_unmount().
Tested by: "Jiawei Ye" <leafy7382 at gmail>
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/smbfs/smbfs_vfsops.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/fs/smbfs/smbfs_vfsops.c b/sys/fs/smbfs/smbfs_vfsops.c index f64c125..904835c 100644 --- a/sys/fs/smbfs/smbfs_vfsops.c +++ b/sys/fs/smbfs/smbfs_vfsops.c @@ -304,6 +304,9 @@ smbfs_unmount(struct mount *mp, int mntflags, struct thread *td) if (error) return error; smb_makescred(&scred, td, td->td_ucred); + error = smb_share_lock(smp->sm_share, LK_EXCLUSIVE, td); + if (error) + return error; smb_share_put(smp->sm_share, &scred); mp->mnt_data = (qaddr_t)0; |