From: Arnd Bergmann <arnd@arndb.de>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: [PATCH 2/2] BKL: remove BKL from freevxfs
Date: Thu, 21 Oct 2010 15:51:08 +0200 [thread overview]
Message-ID: <201010211551.08870.arnd@arndb.de> (raw)
In-Reply-To: <201010211538.24733.arnd@arndb.de>
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>
---
fs/freevxfs/vxfs_lookup.c | 14 ++------------
fs/freevxfs/vxfs_super.c | 10 ----------
2 files changed, 2 insertions(+), 22 deletions(-)
diff --git a/fs/freevxfs/vxfs_lookup.c b/fs/freevxfs/vxfs_lookup.c
index 0ec7bb2..6c5131d 100644
--- a/fs/freevxfs/vxfs_lookup.c
+++ b/fs/freevxfs/vxfs_lookup.c
@@ -36,7 +36,6 @@
#include <linux/highmem.h>
#include <linux/kernel.h>
#include <linux/pagemap.h>
-#include <linux/smp_lock.h>
#include "vxfs.h"
#include "vxfs_dir.h"
@@ -212,16 +211,12 @@ vxfs_lookup(struct inode *dip, struct dentry *dp, struct nameidata *nd)
if (dp->d_name.len > VXFS_NAMELEN)
return ERR_PTR(-ENAMETOOLONG);
- lock_kernel();
ino = vxfs_inode_by_name(dip, dp);
if (ino) {
ip = vxfs_iget(dip->i_sb, ino);
- if (IS_ERR(ip)) {
- unlock_kernel();
+ if (IS_ERR(ip))
return ERR_CAST(ip);
- }
}
- unlock_kernel();
d_add(dp, ip);
return NULL;
}
@@ -248,8 +243,6 @@ vxfs_readdir(struct file *fp, void *retp, filldir_t filler)
u_long page, npages, block, pblocks, nblocks, offset;
loff_t pos;
- lock_kernel();
-
switch ((long)fp->f_pos) {
case 0:
if (filler(retp, ".", 1, fp->f_pos, ip->i_ino, DT_DIR) < 0)
@@ -265,10 +258,8 @@ vxfs_readdir(struct file *fp, void *retp, filldir_t filler)
pos = fp->f_pos - 2;
- if (pos > VXFS_DIRROUND(ip->i_size)) {
- unlock_kernel();
+ if (pos > VXFS_DIRROUND(ip->i_size))
return 0;
- }
npages = dir_pages(ip);
nblocks = dir_blocks(ip);
@@ -327,6 +318,5 @@ vxfs_readdir(struct file *fp, void *retp, filldir_t filler)
done:
fp->f_pos = ((page << PAGE_CACHE_SHIFT) | offset) + 2;
out:
- unlock_kernel();
return 0;
}
diff --git a/fs/freevxfs/vxfs_super.c b/fs/freevxfs/vxfs_super.c
index eb2b9e0..71b0148 100644
--- a/fs/freevxfs/vxfs_super.c
+++ b/fs/freevxfs/vxfs_super.c
@@ -38,7 +38,6 @@
#include <linux/buffer_head.h>
#include <linux/kernel.h>
#include <linux/slab.h>
-#include <linux/smp_lock.h>
#include <linux/stat.h>
#include <linux/vfs.h>
#include <linux/mount.h>
@@ -81,16 +80,12 @@ vxfs_put_super(struct super_block *sbp)
{
struct vxfs_sb_info *infp = VXFS_SBI(sbp);
- lock_kernel();
-
vxfs_put_fake_inode(infp->vsi_fship);
vxfs_put_fake_inode(infp->vsi_ilist);
vxfs_put_fake_inode(infp->vsi_stilist);
brelse(infp->vsi_bp);
kfree(infp);
-
- unlock_kernel();
}
/**
@@ -159,14 +154,11 @@ static int vxfs_fill_super(struct super_block *sbp, void *dp, int silent)
struct inode *root;
int ret = -EINVAL;
- lock_kernel();
-
sbp->s_flags |= MS_RDONLY;
infp = kzalloc(sizeof(*infp), GFP_KERNEL);
if (!infp) {
printk(KERN_WARNING "vxfs: unable to allocate incore superblock\n");
- unlock_kernel();
return -ENOMEM;
}
@@ -239,7 +231,6 @@ static int vxfs_fill_super(struct super_block *sbp, void *dp, int silent)
goto out_free_ilist;
}
- unlock_kernel();
return 0;
out_free_ilist:
@@ -249,7 +240,6 @@ out_free_ilist:
out:
brelse(bp);
kfree(infp);
- unlock_kernel();
return ret;
}
--
1.7.1
prev parent reply other threads:[~2010-10-21 13:50 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-16 14:32 Remaining BKL users, what to do Arnd Bergmann
2010-09-16 14:49 ` Steven Rostedt
2010-09-16 18:32 ` Jens Axboe
2010-09-17 18:46 ` Arnd Bergmann
2010-09-16 15:04 ` Jan Kara
2010-09-16 21:26 ` Anton Altaparmakov
2010-09-17 10:45 ` Arnd Bergmann
2010-09-17 13:32 ` Christoph Hellwig
2010-09-17 13:50 ` Arnd Bergmann
2010-09-17 14:02 ` Christoph Hellwig
2010-09-17 14:56 ` Arnd Bergmann
2010-09-17 19:00 ` [PATCH] BKL: Remove BKL from isofs Arnd Bergmann
2010-09-20 10:58 ` Jan Kara
2010-09-20 11:13 ` Arnd Bergmann
2010-09-20 15:18 ` Jan Kara
2010-09-20 15:40 ` Alexander E. Patrakov
2010-09-20 15:50 ` Jan Kara
2010-09-16 15:07 ` Remaining BKL users, what to do Alan Cox
2010-09-16 20:08 ` David Miller
2010-09-16 16:09 ` Anders Larsen
2010-09-16 16:57 ` Samuel Ortiz
2010-09-16 20:08 ` David Miller
2010-09-16 19:00 ` Jan Harkes
2010-09-16 19:26 ` Arnd Bergmann
2010-09-20 1:25 ` [autofs] " Ian Kent
2010-10-18 15:42 ` [v2] " Arnd Bergmann
2010-10-18 16:19 ` Christoph Hellwig
2010-10-18 17:38 ` Arnd Bergmann
2010-10-18 18:43 ` [Ksummit-2010-discuss] " Greg KH
2010-10-18 23:00 ` Dave Airlie
2010-10-19 0:40 ` Greg KH
2010-10-19 0:57 ` Dave Airlie
2010-10-19 2:24 ` Greg KH
2010-10-19 2:45 ` Dave Airlie
2010-10-19 3:33 ` Steven Rostedt
2010-10-19 4:03 ` Dave Airlie
2010-10-19 5:00 ` Theodore Kilgore
2010-10-19 4:52 ` Dave Airlie
2010-10-19 7:26 ` Arnd Bergmann
2010-10-19 12:39 ` Steven Rostedt
2010-10-19 13:36 ` Arnd Bergmann
2010-10-19 13:43 ` Steven Rostedt
2010-10-19 13:57 ` Arnd Bergmann
2010-10-19 13:54 ` Paul Mundt
2010-10-19 13:26 ` Arnd Bergmann
2010-10-19 20:50 ` Dave Airlie
2010-10-20 16:14 ` Ville Syrjälä
2010-10-19 18:24 ` Valdis.Kletnieks
2010-10-19 19:37 ` Greg KH
2010-10-19 19:40 ` Oliver Neukum
2010-10-19 20:29 ` Greg KH
2010-10-19 20:38 ` Jiri Kosina
2010-10-19 20:41 ` Alan Cox
2010-10-19 20:48 ` Arnd Bergmann
2010-10-19 20:44 ` Arnd Bergmann
2010-10-20 4:43 ` Dave Young
2010-10-20 6:50 ` Arnd Bergmann
2010-11-02 1:21 ` Pavel Machek
2010-11-03 6:58 ` Pekka Enberg
2010-11-05 2:27 ` Arnd Bergmann
2010-11-05 7:14 ` Pekka Enberg
2010-10-21 12:42 ` Christoph Hellwig
2010-10-21 12:47 ` Christoph Hellwig
2010-10-21 13:38 ` Arnd Bergmann
2010-10-21 13:50 ` [PATCH 1/2] BKL: remove BKL from qnx4 Arnd Bergmann
2010-10-21 15:22 ` Anders Larsen
2010-10-21 13:51 ` Arnd Bergmann [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201010211551.08870.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome