From: Arnd Bergmann <arnd@arndb.de>
To: Christoph Hellwig <hch@infradead.org>, Anders Larsen <al@alarsen.net>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: [PATCH 1/2] BKL: remove BKL from qnx4
Date: Thu, 21 Oct 2010 15:50:34 +0200 [thread overview]
Message-ID: <201010211550.34289.arnd@arndb.de> (raw)
In-Reply-To: <201010211538.24733.arnd@arndb.de>
All uses of the BKL in qnx4 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: Anders Larsen <al@alarsen.net>
Cc: Christoph Hellwig <hch@infradead.org>
---
fs/qnx4/dir.c | 3 ---
fs/qnx4/inode.c | 14 +-------------
fs/qnx4/namei.c | 4 ----
3 files changed, 1 insertions(+), 20 deletions(-)
diff --git a/fs/qnx4/dir.c b/fs/qnx4/dir.c
index 6e8fc62..06de116 100644
--- a/fs/qnx4/dir.c
+++ b/fs/qnx4/dir.c
@@ -11,7 +11,6 @@
* 20-06-1998 by Frank Denis : Linux 2.1.99+ & dcache support.
*/
-#include <linux/smp_lock.h>
#include <linux/buffer_head.h>
#include "qnx4.h"
@@ -29,8 +28,6 @@ static int qnx4_readdir(struct file *filp, void *dirent, filldir_t filldir)
QNX4DEBUG((KERN_INFO "qnx4_readdir:i_size = %ld\n", (long) inode->i_size));
QNX4DEBUG((KERN_INFO "filp->f_pos = %ld\n", (long) filp->f_pos));
- lock_kernel();
-
while (filp->f_pos < inode->i_size) {
blknum = qnx4_block_map( inode, filp->f_pos >> QNX4_BLOCK_SIZE_BITS );
bh = sb_bread(inode->i_sb, blknum);
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c
index 86a7be1..01bad30 100644
--- a/fs/qnx4/inode.c
+++ b/fs/qnx4/inode.c
@@ -16,7 +16,6 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/highuid.h>
-#include <linux/smp_lock.h>
#include <linux/pagemap.h>
#include <linux/buffer_head.h>
#include <linux/writeback.h>
@@ -157,8 +156,6 @@ static int qnx4_statfs(struct dentry *dentry, struct kstatfs *buf)
struct super_block *sb = dentry->d_sb;
u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
- lock_kernel();
-
buf->f_type = sb->s_magic;
buf->f_bsize = sb->s_blocksize;
buf->f_blocks = le32_to_cpu(qnx4_sb(sb)->BitMap->di_size) * 8;
@@ -168,8 +165,6 @@ static int qnx4_statfs(struct dentry *dentry, struct kstatfs *buf)
buf->f_fsid.val[0] = (u32)id;
buf->f_fsid.val[1] = (u32)(id >> 32);
- unlock_kernel();
-
return 0;
}
@@ -234,13 +229,9 @@ static int qnx4_fill_super(struct super_block *s, void *data, int silent)
struct qnx4_sb_info *qs;
int ret = -EINVAL;
- lock_kernel();
-
qs = kzalloc(sizeof(struct qnx4_sb_info), GFP_KERNEL);
- if (!qs) {
- unlock_kernel();
+ if (!qs)
return -ENOMEM;
- }
s->s_fs_info = qs;
sb_set_blocksize(s, QNX4_BLOCK_SIZE);
@@ -287,8 +278,6 @@ static int qnx4_fill_super(struct super_block *s, void *data, int silent)
goto outi;
brelse(bh);
-
- unlock_kernel();
return 0;
outi:
@@ -298,7 +287,6 @@ static int qnx4_fill_super(struct super_block *s, void *data, int silent)
outnobh:
kfree(qs);
s->s_fs_info = NULL;
- unlock_kernel();
return ret;
}
diff --git a/fs/qnx4/namei.c b/fs/qnx4/namei.c
index 58703eb..275327b 100644
--- a/fs/qnx4/namei.c
+++ b/fs/qnx4/namei.c
@@ -12,7 +12,6 @@
* 04-07-1998 by Frank Denis : first step for rmdir/unlink.
*/
-#include <linux/smp_lock.h>
#include <linux/buffer_head.h>
#include "qnx4.h"
@@ -109,7 +108,6 @@ struct dentry * qnx4_lookup(struct inode *dir, struct dentry *dentry, struct nam
int len = dentry->d_name.len;
struct inode *foundinode = NULL;
- lock_kernel();
if (!(bh = qnx4_find_entry(len, dir, name, &de, &ino)))
goto out;
/* The entry is linked, let's get the real info */
@@ -123,13 +121,11 @@ struct dentry * qnx4_lookup(struct inode *dir, struct dentry *dentry, struct nam
foundinode = qnx4_iget(dir->i_sb, ino);
if (IS_ERR(foundinode)) {
- unlock_kernel();
QNX4DEBUG((KERN_ERR "qnx4: lookup->iget -> error %ld\n",
PTR_ERR(foundinode)));
return ERR_CAST(foundinode);
}
out:
- unlock_kernel();
d_add(dentry, foundinode);
return NULL;
--
1.7.1
next prev parent reply other threads:[~2010-10-21 13:49 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 ` Arnd Bergmann [this message]
2010-10-21 15:22 ` [PATCH 1/2] BKL: remove BKL from qnx4 Anders Larsen
2010-10-21 13:51 ` [PATCH 2/2] BKL: remove BKL from freevxfs Arnd Bergmann
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=201010211550.34289.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=al@alarsen.net \
--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