From 7d91f837217fb1d87a0205551e94092114aa30fd Mon Sep 17 00:00:00 2001 From: Marcin Slusarz Date: Mon, 9 Jun 2008 16:40:37 -0700 Subject: [PATCH] --- yaml --- r: 98444 b: refs/heads/master c: 694a1764d657e0f7a9b139bc7269c8d5f5a2534b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/namei.c | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index ffbf8ab74e6b..e6e0379915ab 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 20d4fdc1a788e4ca0aaf2422772ba668e7e10839 +refs/heads/master: 694a1764d657e0f7a9b139bc7269c8d5f5a2534b diff --git a/trunk/fs/namei.c b/trunk/fs/namei.c index ee1544696e83..01e67dddcc3d 100644 --- a/trunk/fs/namei.c +++ b/trunk/fs/namei.c @@ -2856,16 +2856,17 @@ int generic_readlink(struct dentry *dentry, char __user *buffer, int buflen) { struct nameidata nd; void *cookie; + int res; nd.depth = 0; cookie = dentry->d_inode->i_op->follow_link(dentry, &nd); - if (!IS_ERR(cookie)) { - int res = vfs_readlink(dentry, buffer, buflen, nd_get_link(&nd)); - if (dentry->d_inode->i_op->put_link) - dentry->d_inode->i_op->put_link(dentry, &nd, cookie); - cookie = ERR_PTR(res); - } - return PTR_ERR(cookie); + if (IS_ERR(cookie)) + return PTR_ERR(cookie); + + res = vfs_readlink(dentry, buffer, buflen, nd_get_link(&nd)); + if (dentry->d_inode->i_op->put_link) + dentry->d_inode->i_op->put_link(dentry, &nd, cookie); + return res; } int vfs_follow_link(struct nameidata *nd, const char *link)