diff options
author | Arnd Bergmann <arnd@arndb.de> | 2010-02-24 07:25:33 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2010-10-04 15:10:51 -0400 |
commit | 60056794127a25d641465b706e8828186f7a2e1f (patch) | |
tree | d325fbc91d9eb5f1373d2a6c90dfe5bd34c4cc7d | |
parent | 3dbc4b32d0b39701cbec65582e196a20889155fb (diff) |
BKL: Remove BKL from OCFS2
The BKL in ocfs2/dlmfs is used in put_super, fill_super and remount_fs
that are all three protected by the superblocks s_umount rw_semaphore.
The use in ocfs2_control_open is evidently unrelated and the function
is protected by ocfs2_control_lock.
Therefore it is safe to remove the BKL entirely.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Joel Becker <joel.becker@oracle.com>
-rw-r--r-- | fs/ocfs2/dlmfs/dlmfs.c | 9 | ||||
-rw-r--r-- | fs/ocfs2/stack_user.c | 3 | ||||
-rw-r--r-- | fs/ocfs2/super.c | 12 |
3 files changed, 1 insertions, 23 deletions
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c index 667d7ceba8c9..c2903b84bb7a 100644 --- a/fs/ocfs2/dlmfs/dlmfs.c +++ b/fs/ocfs2/dlmfs/dlmfs.c | |||
@@ -44,7 +44,6 @@ | |||
44 | #include <linux/string.h> | 44 | #include <linux/string.h> |
45 | #include <linux/backing-dev.h> | 45 | #include <linux/backing-dev.h> |
46 | #include <linux/poll.h> | 46 | #include <linux/poll.h> |
47 | #include <linux/smp_lock.h> | ||
48 | 47 | ||
49 | #include <asm/uaccess.h> | 48 | #include <asm/uaccess.h> |
50 | 49 | ||
@@ -589,27 +588,21 @@ static int dlmfs_fill_super(struct super_block * sb, | |||
589 | struct inode * inode; | 588 | struct inode * inode; |
590 | struct dentry * root; | 589 | struct dentry * root; |
591 | 590 | ||
592 | lock_kernel(); | ||
593 | |||
594 | sb->s_maxbytes = MAX_LFS_FILESIZE; | 591 | sb->s_maxbytes = MAX_LFS_FILESIZE; |
595 | sb->s_blocksize = PAGE_CACHE_SIZE; | 592 | sb->s_blocksize = PAGE_CACHE_SIZE; |
596 | sb->s_blocksize_bits = PAGE_CACHE_SHIFT; | 593 | sb->s_blocksize_bits = PAGE_CACHE_SHIFT; |
597 | sb->s_magic = DLMFS_MAGIC; | 594 | sb->s_magic = DLMFS_MAGIC; |
598 | sb->s_op = &dlmfs_ops; | 595 | sb->s_op = &dlmfs_ops; |
599 | inode = dlmfs_get_root_inode(sb); | 596 | inode = dlmfs_get_root_inode(sb); |
600 | if (!inode) { | 597 | if (!inode) |
601 | unlock_kernel(); | ||
602 | return -ENOMEM; | 598 | return -ENOMEM; |
603 | } | ||
604 | 599 | ||
605 | root = d_alloc_root(inode); | 600 | root = d_alloc_root(inode); |
606 | if (!root) { | 601 | if (!root) { |
607 | iput(inode); | 602 | iput(inode); |
608 | unlock_kernel(); | ||
609 | return -ENOMEM; | 603 | return -ENOMEM; |
610 | } | 604 | } |
611 | sb->s_root = root; | 605 | sb->s_root = root; |
612 | unlock_kernel(); | ||
613 | return 0; | 606 | return 0; |
614 | } | 607 | } |
615 | 608 | ||
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c index 2dc57bca0688..0e68f542ef2e 100644 --- a/fs/ocfs2/stack_user.c +++ b/fs/ocfs2/stack_user.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/miscdevice.h> | 22 | #include <linux/miscdevice.h> |
23 | #include <linux/mutex.h> | 23 | #include <linux/mutex.h> |
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/smp_lock.h> | ||
26 | #include <linux/reboot.h> | 25 | #include <linux/reboot.h> |
27 | #include <asm/uaccess.h> | 26 | #include <asm/uaccess.h> |
28 | 27 | ||
@@ -612,12 +611,10 @@ static int ocfs2_control_open(struct inode *inode, struct file *file) | |||
612 | return -ENOMEM; | 611 | return -ENOMEM; |
613 | p->op_this_node = -1; | 612 | p->op_this_node = -1; |
614 | 613 | ||
615 | lock_kernel(); | ||
616 | mutex_lock(&ocfs2_control_lock); | 614 | mutex_lock(&ocfs2_control_lock); |
617 | file->private_data = p; | 615 | file->private_data = p; |
618 | list_add(&p->op_list, &ocfs2_control_private_list); | 616 | list_add(&p->op_list, &ocfs2_control_private_list); |
619 | mutex_unlock(&ocfs2_control_lock); | 617 | mutex_unlock(&ocfs2_control_lock); |
620 | unlock_kernel(); | ||
621 | 618 | ||
622 | return 0; | 619 | return 0; |
623 | } | 620 | } |
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index b7e4f2d19d40..b7d724393b5a 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -609,8 +609,6 @@ static int ocfs2_remount(struct super_block *sb, int *flags, char *data) | |||
609 | struct mount_options parsed_options; | 609 | struct mount_options parsed_options; |
610 | struct ocfs2_super *osb = OCFS2_SB(sb); | 610 | struct ocfs2_super *osb = OCFS2_SB(sb); |
611 | 611 | ||
612 | lock_kernel(); | ||
613 | |||
614 | if (!ocfs2_parse_options(sb, data, &parsed_options, 1) || | 612 | if (!ocfs2_parse_options(sb, data, &parsed_options, 1) || |
615 | !ocfs2_check_set_options(sb, &parsed_options)) { | 613 | !ocfs2_check_set_options(sb, &parsed_options)) { |
616 | ret = -EINVAL; | 614 | ret = -EINVAL; |
@@ -717,7 +715,6 @@ unlock_osb: | |||
717 | MS_POSIXACL : 0); | 715 | MS_POSIXACL : 0); |
718 | } | 716 | } |
719 | out: | 717 | out: |
720 | unlock_kernel(); | ||
721 | return ret; | 718 | return ret; |
722 | } | 719 | } |
723 | 720 | ||
@@ -1002,8 +999,6 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) | |||
1002 | char nodestr[8]; | 999 | char nodestr[8]; |
1003 | struct ocfs2_blockcheck_stats stats; | 1000 | struct ocfs2_blockcheck_stats stats; |
1004 | 1001 | ||
1005 | lock_kernel(); | ||
1006 | |||
1007 | mlog_entry("%p, %p, %i", sb, data, silent); | 1002 | mlog_entry("%p, %p, %i", sb, data, silent); |
1008 | 1003 | ||
1009 | if (!ocfs2_parse_options(sb, data, &parsed_options, 0)) { | 1004 | if (!ocfs2_parse_options(sb, data, &parsed_options, 0)) { |
@@ -1181,7 +1176,6 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) | |||
1181 | atomic_set(&osb->vol_state, VOLUME_DISABLED); | 1176 | atomic_set(&osb->vol_state, VOLUME_DISABLED); |
1182 | wake_up(&osb->osb_mount_event); | 1177 | wake_up(&osb->osb_mount_event); |
1183 | mlog_exit(status); | 1178 | mlog_exit(status); |
1184 | unlock_kernel(); | ||
1185 | return status; | 1179 | return status; |
1186 | } | 1180 | } |
1187 | } | 1181 | } |
@@ -1196,7 +1190,6 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) | |||
1196 | ocfs2_orphan_scan_start(osb); | 1190 | ocfs2_orphan_scan_start(osb); |
1197 | 1191 | ||
1198 | mlog_exit(status); | 1192 | mlog_exit(status); |
1199 | unlock_kernel(); | ||
1200 | return status; | 1193 | return status; |
1201 | 1194 | ||
1202 | read_super_error: | 1195 | read_super_error: |
@@ -1212,7 +1205,6 @@ read_super_error: | |||
1212 | } | 1205 | } |
1213 | 1206 | ||
1214 | mlog_exit(status); | 1207 | mlog_exit(status); |
1215 | unlock_kernel(); | ||
1216 | return status; | 1208 | return status; |
1217 | } | 1209 | } |
1218 | 1210 | ||
@@ -1645,13 +1637,9 @@ static void ocfs2_put_super(struct super_block *sb) | |||
1645 | { | 1637 | { |
1646 | mlog_entry("(0x%p)\n", sb); | 1638 | mlog_entry("(0x%p)\n", sb); |
1647 | 1639 | ||
1648 | lock_kernel(); | ||
1649 | |||
1650 | ocfs2_sync_blockdev(sb); | 1640 | ocfs2_sync_blockdev(sb); |
1651 | ocfs2_dismount_volume(sb, 0); | 1641 | ocfs2_dismount_volume(sb, 0); |
1652 | 1642 | ||
1653 | unlock_kernel(); | ||
1654 | |||
1655 | mlog_exit_void(); | 1643 | mlog_exit_void(); |
1656 | } | 1644 | } |
1657 | 1645 | ||