From af3c42900a9f9c9a0e21fd2296f371048ceaff1b Mon Sep 17 00:00:00 2001 From: Al Viro Date: Mon, 25 Jun 2012 11:46:13 +0400 Subject: [PATCH] --- yaml --- r: 312985 b: refs/heads/master c: bf349a447059656ebe63fb4fd1ccb27ac1da22ad h: refs/heads/master i: 312983: 5406675b7bd92279e3efca281370d5f25e1e8ee8 v: v3 --- [refs] | 2 +- .../arch/powerpc/platforms/cell/spufs/inode.c | 46 ++++++++----------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/[refs] b/[refs] index 6539ac120ae9..05c81842a400 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3b6456d2c3fc9d0c4ec1db5d6594f40098ff0a6f +refs/heads/master: bf349a447059656ebe63fb4fd1ccb27ac1da22ad diff --git a/trunk/arch/powerpc/platforms/cell/spufs/inode.c b/trunk/arch/powerpc/platforms/cell/spufs/inode.c index 66519d263da7..1c9cac0cf895 100644 --- a/trunk/arch/powerpc/platforms/cell/spufs/inode.c +++ b/trunk/arch/powerpc/platforms/cell/spufs/inode.c @@ -323,22 +323,21 @@ static int spufs_context_open(struct dentry *dentry, struct vfsmount *mnt) struct file *filp; ret = get_unused_fd(); - if (ret < 0) { - dput(dentry); - mntput(mnt); - goto out; - } + if (ret < 0) + return ret; - filp = dentry_open(dentry, mnt, O_RDONLY, current_cred()); + /* + * get references for dget and mntget, will be released + * in error path of *_open(). + */ + filp = dentry_open(dget(dentry), mntget(mnt), O_RDONLY, current_cred()); if (IS_ERR(filp)) { put_unused_fd(ret); - ret = PTR_ERR(filp); - goto out; + return PTR_ERR(filp); } filp->f_op = &spufs_context_fops; fd_install(ret, filp); -out: return ret; } @@ -495,11 +494,7 @@ spufs_create_context(struct inode *inode, struct dentry *dentry, put_spu_context(neighbor); } - /* - * get references for dget and mntget, will be released - * in error path of *_open(). - */ - ret = spufs_context_open(dget(dentry), mntget(mnt)); + ret = spufs_context_open(dentry, mnt); if (ret < 0) { WARN_ON(spufs_rmdir(inode, dentry)); if (affinity) @@ -562,22 +557,21 @@ static int spufs_gang_open(struct dentry *dentry, struct vfsmount *mnt) struct file *filp; ret = get_unused_fd(); - if (ret < 0) { - dput(dentry); - mntput(mnt); - goto out; - } + if (ret < 0) + return ret; - filp = dentry_open(dentry, mnt, O_RDONLY, current_cred()); + /* + * get references for dget and mntget, will be released + * in error path of *_open(). + */ + filp = dentry_open(dget(dentry), mntget(mnt), O_RDONLY, current_cred()); if (IS_ERR(filp)) { put_unused_fd(ret); - ret = PTR_ERR(filp); - goto out; + return PTR_ERR(filp); } filp->f_op = &simple_dir_operations; fd_install(ret, filp); -out: return ret; } @@ -591,11 +585,7 @@ static int spufs_create_gang(struct inode *inode, if (ret) goto out; - /* - * get references for dget and mntget, will be released - * in error path of *_open(). - */ - ret = spufs_gang_open(dget(dentry), mntget(mnt)); + ret = spufs_gang_open(dentry, mnt); if (ret < 0) { int err = simple_rmdir(inode, dentry); WARN_ON(err);