]> err.no Git - linux-2.6/blobdiff - fs/gfs2/inode.c
[GFS2] Fixes to scanning of glocks (again)
[linux-2.6] / fs / gfs2 / inode.c
index 4e9c42119aed42140862f601832bac0fea10b152..f4c48395208a0be24e14ebf99a2d688d71bc176d 100644 (file)
@@ -236,7 +236,6 @@ int gfs2_inode_refresh(struct gfs2_inode *ip)
        }
 
        gfs2_dinode_in(&ip->i_di, dibh->b_data);
-       set_bit(GIF_MIN_INIT, &ip->i_flags);
 
        brelse(dibh);
 
@@ -326,6 +325,7 @@ int gfs2_change_nlink(struct gfs2_inode *ip, int diff)
        uint32_t nlink;
        int error;
 
+       BUG_ON(ip->i_di.di_nlink != ip->i_inode.i_nlink);
        nlink = ip->i_di.di_nlink + diff;
 
        /* If we are reducing the nlink count, but the new value ends up being
@@ -342,6 +342,7 @@ int gfs2_change_nlink(struct gfs2_inode *ip, int diff)
 
        ip->i_di.di_nlink = nlink;
        ip->i_di.di_ctime = get_seconds();
+       ip->i_inode.i_nlink = nlink;
 
        gfs2_trans_add_bh(ip->i_gl, dibh, 1);
        gfs2_dinode_out(&ip->i_di, dibh->b_data);
@@ -420,7 +421,7 @@ struct inode *gfs2_lookupi(struct inode *dir, const struct qstr *name,
                return ERR_PTR(error);
 
        if (!is_root) {
-               error = gfs2_repermission(dir, MAY_EXEC, NULL);
+               error = permission(dir, MAY_EXEC, NULL);
                if (error)
                        goto out;
        }
@@ -571,7 +572,7 @@ static int create_ok(struct gfs2_inode *dip, const struct qstr *name,
 {
        int error;
 
-       error = gfs2_repermission(&dip->i_inode, MAY_WRITE | MAY_EXEC, NULL);
+       error = permission(&dip->i_inode, MAY_WRITE | MAY_EXEC, NULL);
        if (error)
                return error;
 
@@ -1003,7 +1004,7 @@ int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name,
        if (IS_APPEND(&dip->i_inode))
                return -EPERM;
 
-       error = gfs2_repermission(&dip->i_inode, MAY_WRITE | MAY_EXEC, NULL);
+       error = permission(&dip->i_inode, MAY_WRITE | MAY_EXEC, NULL);
        if (error)
                return error;
 
@@ -1356,8 +1357,3 @@ int gfs2_setattr_simple(struct gfs2_inode *ip, struct iattr *attr)
        return error;
 }
 
-int gfs2_repermission(struct inode *inode, int mask, struct nameidata *nd)
-{
-       return permission(inode, mask, nd);
-}
-