|
@@ -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;
|
|
|
}
|