diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index 213dd00..d4abf8b 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -471,7 +471,7 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp) pmp->pm_cp = cp; pmp->pm_bo = bo; - lockinit(&pmp->pm_fatlock, 0, msdosfs_lock_msg, 0, 0); + sx_init(&pmp->pm_fatlock, msdosfs_lock_msg); /* * Initialize ownerships and permissions, since nothing else will @@ -777,7 +777,7 @@ error_exit: PICKUP_GIANT(); } if (pmp) { - lockdestroy(&pmp->pm_fatlock); + sx_destroy(&pmp->pm_fatlock); if (pmp->pm_inusemap) free(pmp->pm_inusemap, M_MSDOSFSFAT); free(pmp, M_MSDOSFSMNT); @@ -854,7 +854,7 @@ msdosfs_unmount(struct mount *mp, int mntflags) free(pmp->pm_inusemap, M_MSDOSFSFAT); if (pmp->pm_flags & MSDOSFS_LARGEFS) msdosfs_fileno_free(mp); - lockdestroy(&pmp->pm_fatlock); + sx_destroy(&pmp->pm_fatlock); free(pmp, M_MSDOSFSMNT); mp->mnt_data = NULL; MNT_ILOCK(mp); diff --git a/sys/fs/msdosfs/msdosfsmount.h b/sys/fs/msdosfs/msdosfsmount.h index 10ed95b..1dcffbd 100644 --- a/sys/fs/msdosfs/msdosfsmount.h +++ b/sys/fs/msdosfs/msdosfsmount.h @@ -55,7 +55,7 @@ #include #include -#include +#include #include #ifdef MALLOC_DECLARE @@ -111,7 +111,7 @@ struct msdosfsmount { u_int32_t pm_nfileno; /* next 32-bit fileno */ RB_HEAD(msdosfs_filenotree, msdosfs_fileno) pm_filenos; /* 64<->32-bit fileno mapping */ - struct lock pm_fatlock; /* lockmgr protecting allocations and rb tree */ + struct sx pm_fatlock; /* sx protecting allocations and rb tree */ }; /* @@ -220,12 +220,9 @@ void msdosfs_fileno_init(struct mount *); void msdosfs_fileno_free(struct mount *); uint32_t msdosfs_fileno_map(struct mount *, uint64_t); -#define MSDOSFS_LOCK_MP(pmp) \ - lockmgr(&(pmp)->pm_fatlock, LK_EXCLUSIVE, NULL) -#define MSDOSFS_UNLOCK_MP(pmp) \ - lockmgr(&(pmp)->pm_fatlock, LK_RELEASE, NULL) -#define MSDOSFS_ASSERT_MP_LOCKED(pmp) \ - lockmgr_assert(&(pmp)->pm_fatlock, KA_XLOCKED) +#define MSDOSFS_LOCK_MP(pmp) sx_xlock(&(pmp)->pm_fatlock) +#define MSDOSFS_UNLOCK_MP(pmp) sx_xunlock(&(pmp)->pm_fatlock) +#define MSDOSFS_ASSERT_MP_LOCKED(pmp) sx_assert(&(pmp)->pm_fatlock, SA_XLOCKED) #endif /* _KERNEL */