GFS2: Fix refcnt leak on gfs2_follow_link() error path
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Mon, 11 Jan 2010 18:36:57 +0000 (03:36 +0900)
committerSteven Whitehouse <swhiteho@redhat.com>
Tue, 12 Jan 2010 09:30:15 +0000 (09:30 +0000)
If ->follow_link handler return the error, it should decrement
nd->path refcnt.

This patch fix it.

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/ops_inode.c

index 78f73ca1ef3e8ac9ce5af97b43eccec7e8f7be68..84350e1be66d2b286e306b13395953557ace4be8 100644 (file)
@@ -1088,7 +1088,8 @@ static void *gfs2_follow_link(struct dentry *dentry, struct nameidata *nd)
                error = vfs_follow_link(nd, buf);
                if (buf != array)
                        kfree(buf);
-       }
+       } else
+               path_put(&nd->path);
 
        return ERR_PTR(error);
 }