GFS2: Fix nlink setting on inode creation
authorSteven Whitehouse <swhiteho@redhat.com>
Wed, 11 Jan 2012 12:35:05 +0000 (12:35 +0000)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 11 Jan 2012 12:35:05 +0000 (12:35 +0000)
Since the nlink count will be 0, we need to use set_nlink rather
than inc_nlink in order to avoid triggering the inc_nlink warning
which was added recently.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/inode.c

index 017960cf1d7aaa198bef71664bdfed82a6fa7f9b..a7d611b93f0fca912ce716736df2524cad7b40be 100644 (file)
@@ -599,9 +599,7 @@ static int link_dinode(struct gfs2_inode *dip, const struct qstr *name,
        error = gfs2_meta_inode_buffer(ip, &dibh);
        if (error)
                goto fail_end_trans;
-       inc_nlink(&ip->i_inode);
-       if (S_ISDIR(ip->i_inode.i_mode))
-               inc_nlink(&ip->i_inode);
+       set_nlink(&ip->i_inode, S_ISDIR(ip->i_inode.i_mode) ? 2 : 1);
        gfs2_trans_add_bh(ip->i_gl, dibh, 1);
        gfs2_dinode_out(ip, dibh->b_data);
        brelse(dibh);