diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-16 23:35:46 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-17 00:36:36 -0400 |
commit | e7ec952f6aa6ac1649ac49eb5e4de5b92c829d1e (patch) | |
tree | cfe58a2f9b82ab94bd5ddbbaefb38b4790bdc65c /fs/efs/namei.c | |
parent | 536c94901eb8f2eb6fccf81ae6be814899a9f6e8 (diff) | |
download | op-kernel-dev-e7ec952f6aa6ac1649ac49eb5e4de5b92c829d1e.zip op-kernel-dev-e7ec952f6aa6ac1649ac49eb5e4de5b92c829d1e.tar.gz |
get rid of BKL in fs/efs
Only readdir() really needed it, and that's easily fixable by switch to
generic_file_llseek()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/efs/namei.c')
-rw-r--r-- | fs/efs/namei.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/fs/efs/namei.c b/fs/efs/namei.c index c3fb5f9..1511bf9 100644 --- a/fs/efs/namei.c +++ b/fs/efs/namei.c @@ -8,7 +8,6 @@ #include <linux/buffer_head.h> #include <linux/string.h> -#include <linux/smp_lock.h> #include <linux/exportfs.h> #include "efs.h" @@ -63,16 +62,12 @@ struct dentry *efs_lookup(struct inode *dir, struct dentry *dentry, struct namei efs_ino_t inodenum; struct inode * inode = NULL; - lock_kernel(); inodenum = efs_find_entry(dir, dentry->d_name.name, dentry->d_name.len); if (inodenum) { inode = efs_iget(dir->i_sb, inodenum); - if (IS_ERR(inode)) { - unlock_kernel(); + if (IS_ERR(inode)) return ERR_CAST(inode); - } } - unlock_kernel(); return d_splice_alias(inode, dentry); } @@ -115,11 +110,9 @@ struct dentry *efs_get_parent(struct dentry *child) struct dentry *parent = ERR_PTR(-ENOENT); efs_ino_t ino; - lock_kernel(); ino = efs_find_entry(child->d_inode, "..", 2); if (ino) parent = d_obtain_alias(efs_iget(child->d_inode->i_sb, ino)); - unlock_kernel(); return parent; } |