}
gfs2_dinode_in(&ip->i_di, dibh->b_data);
- set_bit(GIF_MIN_INIT, &ip->i_flags);
brelse(dibh);
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
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);
return ERR_PTR(error);
if (!is_root) {
- error = gfs2_repermission(dir, MAY_EXEC, NULL);
+ error = permission(dir, MAY_EXEC, NULL);
if (error)
goto out;
}
{
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;
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;
return error;
}
-int gfs2_repermission(struct inode *inode, int mask, struct nameidata *nd)
-{
- return permission(inode, mask, nd);
-}
-