aboutsummaryrefslogtreecommitdiffstats
path: root/fs/freevxfs/vxfs_super.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-10-21 09:58:01 -0400
committerArnd Bergmann <arnd@arndb.de>2010-10-21 12:48:09 -0400
commit6d7bccc2215c37205ede6c9cf84db64e7c4f9443 (patch)
tree04864624eb5022eac6eec81d264b83e28fad2863 /fs/freevxfs/vxfs_super.c
parent073c21416268658bd1bc573af85eeac2ebb56ed5 (diff)
BKL: remove BKL from freevxfs
All uses of the BKL in freevxfs were the result of a pushdown into code that doesn't really need it. As Christoph points out, this is a read-only file system, which eliminates most of the races in readdir/lookup. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Christoph Hellwig <hch@infradead.org>
Diffstat (limited to 'fs/freevxfs/vxfs_super.c')
-rw-r--r--fs/freevxfs/vxfs_super.c10
1 files changed, 0 insertions, 10 deletions
diff --git a/fs/freevxfs/vxfs_super.c b/fs/freevxfs/vxfs_super.c
index eb2b9e09c996..71b0148b8784 100644
--- a/fs/freevxfs/vxfs_super.c
+++ b/fs/freevxfs/vxfs_super.c
@@ -38,7 +38,6 @@
38#include <linux/buffer_head.h> 38#include <linux/buffer_head.h>
39#include <linux/kernel.h> 39#include <linux/kernel.h>
40#include <linux/slab.h> 40#include <linux/slab.h>
41#include <linux/smp_lock.h>
42#include <linux/stat.h> 41#include <linux/stat.h>
43#include <linux/vfs.h> 42#include <linux/vfs.h>
44#include <linux/mount.h> 43#include <linux/mount.h>
@@ -81,16 +80,12 @@ vxfs_put_super(struct super_block *sbp)
81{ 80{
82 struct vxfs_sb_info *infp = VXFS_SBI(sbp); 81 struct vxfs_sb_info *infp = VXFS_SBI(sbp);
83 82
84 lock_kernel();
85
86 vxfs_put_fake_inode(infp->vsi_fship); 83 vxfs_put_fake_inode(infp->vsi_fship);
87 vxfs_put_fake_inode(infp->vsi_ilist); 84 vxfs_put_fake_inode(infp->vsi_ilist);
88 vxfs_put_fake_inode(infp->vsi_stilist); 85 vxfs_put_fake_inode(infp->vsi_stilist);
89 86
90 brelse(infp->vsi_bp); 87 brelse(infp->vsi_bp);
91 kfree(infp); 88 kfree(infp);
92
93 unlock_kernel();
94} 89}
95 90
96/** 91/**
@@ -159,14 +154,11 @@ static int vxfs_fill_super(struct super_block *sbp, void *dp, int silent)
159 struct inode *root; 154 struct inode *root;
160 int ret = -EINVAL; 155 int ret = -EINVAL;
161 156
162 lock_kernel();
163
164 sbp->s_flags |= MS_RDONLY; 157 sbp->s_flags |= MS_RDONLY;
165 158
166 infp = kzalloc(sizeof(*infp), GFP_KERNEL); 159 infp = kzalloc(sizeof(*infp), GFP_KERNEL);
167 if (!infp) { 160 if (!infp) {
168 printk(KERN_WARNING "vxfs: unable to allocate incore superblock\n"); 161 printk(KERN_WARNING "vxfs: unable to allocate incore superblock\n");
169 unlock_kernel();
170 return -ENOMEM; 162 return -ENOMEM;
171 } 163 }
172 164
@@ -239,7 +231,6 @@ static int vxfs_fill_super(struct super_block *sbp, void *dp, int silent)
239 goto out_free_ilist; 231 goto out_free_ilist;
240 } 232 }
241 233
242 unlock_kernel();
243 return 0; 234 return 0;
244 235
245out_free_ilist: 236out_free_ilist:
@@ -249,7 +240,6 @@ out_free_ilist:
249out: 240out:
250 brelse(bp); 241 brelse(bp);
251 kfree(infp); 242 kfree(infp);
252 unlock_kernel();
253 return ret; 243 return ret;
254} 244}
255 245