aboutsummaryrefslogtreecommitdiffstats
path: root/fs/configfs/dir.c
diff options
context:
space:
mode:
authorJoel Becker <joel.becker@oracle.com>2007-07-07 02:33:17 -0400
committerMark Fasheh <mark.fasheh@oracle.com>2007-07-10 20:10:56 -0400
commite6bd07aee739566803425acdbf5cdb29919164e1 (patch)
treee085a5065d06af2b7c0cab8bcd8fb4eb289344be /fs/configfs/dir.c
parent3fe6c5ce1176cf661dbe71fc43b627c1a742a89a (diff)
configfs: Convert subsystem semaphore to mutex
Convert the su_sem member of struct configfs_subsystem to a struct mutex, as that's what it is. Also convert all the users and update Documentation/configfs.txt and Documentation/configfs_example.c accordingly. [ Conflict in fs/dlm/config.c with commit 3168b0780d06ace875696f8a648d04d6089654e5 manually resolved. --Mark ] Inspired-by: Satyam Sharma <ssatyam@cse.iitk.ac.in> Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/configfs/dir.c')
-rw-r--r--fs/configfs/dir.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 5e6e37e58f36..d3b1dbb9b5b8 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -562,7 +562,7 @@ static int populate_groups(struct config_group *group)
562 562
563/* 563/*
564 * All of link_obj/unlink_obj/link_group/unlink_group require that 564 * All of link_obj/unlink_obj/link_group/unlink_group require that
565 * subsys->su_sem is held. 565 * subsys->su_mutex is held.
566 */ 566 */
567 567
568static void unlink_obj(struct config_item *item) 568static void unlink_obj(struct config_item *item)
@@ -783,7 +783,7 @@ static int configfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
783 783
784 snprintf(name, dentry->d_name.len + 1, "%s", dentry->d_name.name); 784 snprintf(name, dentry->d_name.len + 1, "%s", dentry->d_name.name);
785 785
786 down(&subsys->su_sem); 786 mutex_lock(&subsys->su_mutex);
787 group = NULL; 787 group = NULL;
788 item = NULL; 788 item = NULL;
789 if (type->ct_group_ops->make_group) { 789 if (type->ct_group_ops->make_group) {
@@ -797,7 +797,7 @@ static int configfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
797 if (item) 797 if (item)
798 link_obj(parent_item, item); 798 link_obj(parent_item, item);
799 } 799 }
800 up(&subsys->su_sem); 800 mutex_unlock(&subsys->su_mutex);
801 801
802 kfree(name); 802 kfree(name);
803 if (!item) { 803 if (!item) {
@@ -841,13 +841,13 @@ static int configfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
841out_unlink: 841out_unlink:
842 if (ret) { 842 if (ret) {
843 /* Tear down everything we built up */ 843 /* Tear down everything we built up */
844 down(&subsys->su_sem); 844 mutex_lock(&subsys->su_mutex);
845 if (group) 845 if (group)
846 unlink_group(group); 846 unlink_group(group);
847 else 847 else
848 unlink_obj(item); 848 unlink_obj(item);
849 client_drop_item(parent_item, item); 849 client_drop_item(parent_item, item);
850 up(&subsys->su_sem); 850 mutex_unlock(&subsys->su_mutex);
851 851
852 if (module_got) 852 if (module_got)
853 module_put(owner); 853 module_put(owner);
@@ -910,17 +910,17 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
910 if (sd->s_type & CONFIGFS_USET_DIR) { 910 if (sd->s_type & CONFIGFS_USET_DIR) {
911 configfs_detach_group(item); 911 configfs_detach_group(item);
912 912
913 down(&subsys->su_sem); 913 mutex_lock(&subsys->su_mutex);
914 unlink_group(to_config_group(item)); 914 unlink_group(to_config_group(item));
915 } else { 915 } else {
916 configfs_detach_item(item); 916 configfs_detach_item(item);
917 917
918 down(&subsys->su_sem); 918 mutex_lock(&subsys->su_mutex);
919 unlink_obj(item); 919 unlink_obj(item);
920 } 920 }
921 921
922 client_drop_item(parent_item, item); 922 client_drop_item(parent_item, item);
923 up(&subsys->su_sem); 923 mutex_unlock(&subsys->su_mutex);
924 924
925 /* Drop our reference from above */ 925 /* Drop our reference from above */
926 config_item_put(item); 926 config_item_put(item);