fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / fs / freevxfs / vxfs_lookup.c
index 29cce45..3995d7f 100644 (file)
@@ -240,12 +240,14 @@ vxfs_lookup(struct inode *dip, struct dentry *dp, struct nameidata *nd)
 static int
 vxfs_readdir(struct file *fp, void *retp, filldir_t filler)
 {
-       struct inode            *ip = fp->f_dentry->d_inode;
+       struct inode            *ip = fp->f_path.dentry->d_inode;
        struct super_block      *sbp = ip->i_sb;
        u_long                  bsize = sbp->s_blocksize;
        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)