diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-04-21 15:10:46 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-04-21 15:10:46 -0400 |
commit | a74604bee27da7c9506114e5710f91f388e98296 (patch) | |
tree | bfd1c8b14c03022894396c788bf8b0377c5afe49 /fs/gfs2/locking.c | |
parent | a748422ee45725e04e1d3792fa19dfa90ddfd116 (diff) | |
download | lwn-a74604bee27da7c9506114e5710f91f388e98296.tar.gz lwn-a74604bee27da7c9506114e5710f91f388e98296.zip |
[GFS2] sem -> mutex conversion in locking.c
Convert a semaphore to a mutex in locking.c and also tidy
up one or two loose ends.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/locking.c')
-rw-r--r-- | fs/gfs2/locking.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/fs/gfs2/locking.c b/fs/gfs2/locking.c index 0f4c50ebcbad..6a78aacb26af 100644 --- a/fs/gfs2/locking.c +++ b/fs/gfs2/locking.c @@ -28,7 +28,7 @@ struct lmh_wrapper { of them by name at mount time, e.g. lock_nolock, lock_dlm. */ static struct list_head lmh_list; -static struct semaphore lmh_lock; +static struct mutex lmh_lock; /** * gfs_register_lockproto - Register a low-level locking protocol @@ -41,11 +41,11 @@ int gfs_register_lockproto(struct lm_lockops *proto) { struct lmh_wrapper *lw; - down(&lmh_lock); + mutex_lock(&lmh_lock); list_for_each_entry(lw, &lmh_list, lw_list) { if (!strcmp(lw->lw_ops->lm_proto_name, proto->lm_proto_name)) { - up(&lmh_lock); + mutex_unlock(&lmh_lock); printk(KERN_INFO "GFS2: protocol %s already exists\n", proto->lm_proto_name); return -EEXIST; @@ -54,14 +54,14 @@ int gfs_register_lockproto(struct lm_lockops *proto) lw = kzalloc(sizeof(struct lmh_wrapper), GFP_KERNEL); if (!lw) { - up(&lmh_lock); + mutex_unlock(&lmh_lock); return -ENOMEM; } lw->lw_ops = proto; list_add(&lw->lw_list, &lmh_list); - up(&lmh_lock); + mutex_unlock(&lmh_lock); return 0; } @@ -76,18 +76,18 @@ void gfs_unregister_lockproto(struct lm_lockops *proto) { struct lmh_wrapper *lw; - down(&lmh_lock); + mutex_lock(&lmh_lock); list_for_each_entry(lw, &lmh_list, lw_list) { if (!strcmp(lw->lw_ops->lm_proto_name, proto->lm_proto_name)) { list_del(&lw->lw_list); - up(&lmh_lock); + mutex_unlock(&lmh_lock); kfree(lw); return; } } - up(&lmh_lock); + mutex_unlock(&lmh_lock); printk(KERN_WARNING "GFS2: can't unregister lock protocol %s\n", proto->lm_proto_name); @@ -118,7 +118,7 @@ int gfs2_mount_lockproto(char *proto_name, char *table_name, char *host_data, int error, found; retry: - down(&lmh_lock); + mutex_lock(&lmh_lock); found = 0; list_for_each_entry(lw, &lmh_list, lw_list) { @@ -131,7 +131,7 @@ int gfs2_mount_lockproto(char *proto_name, char *table_name, char *host_data, if (!found) { if (!try && capable(CAP_SYS_MODULE)) { try = 1; - up(&lmh_lock); + mutex_unlock(&lmh_lock); request_module(proto_name); goto retry; } @@ -142,7 +142,7 @@ int gfs2_mount_lockproto(char *proto_name, char *table_name, char *host_data, if (!try_module_get(lw->lw_ops->lm_owner)) { try = 0; - up(&lmh_lock); + mutex_unlock(&lmh_lock); msleep(1000); goto retry; } @@ -152,17 +152,17 @@ int gfs2_mount_lockproto(char *proto_name, char *table_name, char *host_data, if (error) module_put(lw->lw_ops->lm_owner); out: - up(&lmh_lock); + mutex_unlock(&lmh_lock); return error; } void gfs2_unmount_lockproto(struct lm_lockstruct *lockstruct) { - down(&lmh_lock); + mutex_lock(&lmh_lock); lockstruct->ls_ops->lm_unmount(lockstruct->ls_lockspace); if (lockstruct->ls_ops->lm_owner) module_put(lockstruct->ls_ops->lm_owner); - up(&lmh_lock); + mutex_unlock(&lmh_lock); } /** @@ -173,16 +173,16 @@ void gfs2_unmount_lockproto(struct lm_lockstruct *lockstruct) void gfs2_withdraw_lockproto(struct lm_lockstruct *lockstruct) { - down(&lmh_lock); + mutex_lock(&lmh_lock); lockstruct->ls_ops->lm_withdraw(lockstruct->ls_lockspace); if (lockstruct->ls_ops->lm_owner) module_put(lockstruct->ls_ops->lm_owner); - up(&lmh_lock); + mutex_unlock(&lmh_lock); } void __init gfs2_init_lmh(void) { - init_MUTEX(&lmh_lock); + mutex_init(&lmh_lock); INIT_LIST_HEAD(&lmh_list); } |