diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2010-01-12 03:36:57 +0900 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2010-01-12 09:30:15 +0000 |
commit | 0f585f14d4e34ab701283e9237ac7695cd7c9e31 (patch) | |
tree | 7ded56c8f9ddc84d4930a5a9f0f52c9b1464f6e1 /fs/gfs2 | |
parent | 066000dd856709b6980123eb39b957fe26993f7b (diff) | |
download | linux-3.10-0f585f14d4e34ab701283e9237ac7695cd7c9e31.tar.gz linux-3.10-0f585f14d4e34ab701283e9237ac7695cd7c9e31.tar.bz2 linux-3.10-0f585f14d4e34ab701283e9237ac7695cd7c9e31.zip |
GFS2: Fix refcnt leak on gfs2_follow_link() error path
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>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/ops_inode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/ops_inode.c b/fs/gfs2/ops_inode.c index 78f73ca1ef3..84350e1be66 100644 --- a/fs/gfs2/ops_inode.c +++ b/fs/gfs2/ops_inode.c @@ -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); } |