Merge master.kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
[pandora-kernel.git] / fs / gfs2 / ops_dentry.c
index 6cbff89..d355899 100644 (file)
@@ -1,10 +1,10 @@
 /*
  * Copyright (C) Sistina Software, Inc.  1997-2003 All rights reserved.
- * Copyright (C) 2004-2005 Red Hat, Inc.  All rights reserved.
+ * Copyright (C) 2004-2006 Red Hat, Inc.  All rights reserved.
  *
  * This copyrighted material is made available to anyone wishing to use,
  * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
+ * of the GNU General Public License version 2.
  */
 
 #include <linux/sched.h>
@@ -15,9 +15,9 @@
 #include <linux/smp_lock.h>
 #include <linux/gfs2_ondisk.h>
 #include <linux/crc32.h>
+#include <linux/lm_interface.h>
 
 #include "gfs2.h"
-#include "lm_interface.h"
 #include "incore.h"
 #include "dir.h"
 #include "glock.h"
 static int gfs2_drevalidate(struct dentry *dentry, struct nameidata *nd)
 {
        struct dentry *parent = dget_parent(dentry);
-       struct gfs2_sbd *sdp = parent->d_inode->i_sb->s_fs_info;
-       struct gfs2_inode *dip = parent->d_inode->u.generic_ip;
+       struct gfs2_sbd *sdp = GFS2_SB(parent->d_inode);
+       struct gfs2_inode *dip = GFS2_I(parent->d_inode);
        struct inode *inode = dentry->d_inode;
        struct gfs2_holder d_gh;
        struct gfs2_inode *ip;
-       struct gfs2_inum inum;
+       struct gfs2_inum_host inum;
        unsigned int type;
        int error;
 
@@ -71,41 +71,37 @@ static int gfs2_drevalidate(struct dentry *dentry, struct nameidata *nd)
                goto fail_gunlock;
        }
 
-       ip = inode->u.generic_ip;
+       ip = GFS2_I(inode);
 
        if (!gfs2_inum_equal(&ip->i_num, &inum))
                goto invalid_gunlock;
 
-       if (IF2DT(ip->i_di.di_mode) != type) {
+       if (IF2DT(ip->i_inode.i_mode) != type) {
                gfs2_consist_inode(dip);
                goto fail_gunlock;
        }
 
- valid_gunlock:
+valid_gunlock:
        gfs2_glock_dq_uninit(&d_gh);
-
- valid:
+valid:
        dput(parent);
        return 1;
 
- invalid_gunlock:
+invalid_gunlock:
        gfs2_glock_dq_uninit(&d_gh);
-
- invalid:
+invalid:
        if (inode && S_ISDIR(inode->i_mode)) {
                if (have_submounts(dentry))
                        goto valid;
                shrink_dcache_parent(dentry);
        }
        d_drop(dentry);
-
        dput(parent);
        return 0;
 
- fail_gunlock:
+fail_gunlock:
        gfs2_glock_dq_uninit(&d_gh);
-
- fail:
+fail:
        dput(parent);
        return 0;
 }