From 2da6b608226abd77fce0aa8bfa03bc87ca085417 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 19 Jul 2012 16:12:22 +0400 Subject: [PATCH] --- yaml --- r: 320947 b: refs/heads/master c: 1ba44cc970e40b544af7e76a19285d568b4f3ccc h: refs/heads/master i: 320945: 8bf89c7266c3c61f23cedd6a5eb3a8e0f1799b0f 320943: 0b996784aa0daf713fc964e3c6824fff9561bd90 v: v3 --- [refs] | 2 +- .../arch/powerpc/platforms/cell/spufs/inode.c | 33 ++++++------------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/[refs] b/[refs] index 8fa452285743..062975e189dc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 66ec7b2cd0d84561ef3c420b5995d0c1dd2cf1c5 +refs/heads/master: 1ba44cc970e40b544af7e76a19285d568b4f3ccc diff --git a/trunk/arch/powerpc/platforms/cell/spufs/inode.c b/trunk/arch/powerpc/platforms/cell/spufs/inode.c index 848134e72058..0576c44aa75c 100644 --- a/trunk/arch/powerpc/platforms/cell/spufs/inode.c +++ b/trunk/arch/powerpc/platforms/cell/spufs/inode.c @@ -450,28 +450,24 @@ spufs_create_context(struct inode *inode, struct dentry *dentry, struct spu_context *neighbor; struct path path = {.mnt = mnt, .dentry = dentry}; - ret = -EPERM; if ((flags & SPU_CREATE_NOSCHED) && !capable(CAP_SYS_NICE)) - goto out_unlock; + return -EPERM; - ret = -EINVAL; if ((flags & (SPU_CREATE_NOSCHED | SPU_CREATE_ISOLATE)) == SPU_CREATE_ISOLATE) - goto out_unlock; + return -EINVAL; - ret = -ENODEV; if ((flags & SPU_CREATE_ISOLATE) && !isolated_loader) - goto out_unlock; + return -ENODEV; gang = NULL; neighbor = NULL; affinity = flags & (SPU_CREATE_AFFINITY_MEM | SPU_CREATE_AFFINITY_SPU); if (affinity) { gang = SPUFS_I(inode)->i_gang; - ret = -EINVAL; if (!gang) - goto out_unlock; + return -EINVAL; mutex_lock(&gang->aff_mutex); neighbor = spufs_assert_affinity(flags, gang, aff_filp); if (IS_ERR(neighbor)) { @@ -498,9 +494,6 @@ spufs_create_context(struct inode *inode, struct dentry *dentry, out_aff_unlock: if (affinity) mutex_unlock(&gang->aff_mutex); -out_unlock: - mutex_unlock(&inode->i_mutex); - dput(dentry); return ret; } @@ -573,18 +566,13 @@ static int spufs_create_gang(struct inode *inode, int ret; ret = spufs_mkgang(inode, dentry, mode & S_IRWXUGO); - if (ret) - goto out; - - ret = spufs_gang_open(&path); - if (ret < 0) { - int err = simple_rmdir(inode, dentry); - WARN_ON(err); + if (!ret) { + ret = spufs_gang_open(&path); + if (ret < 0) { + int err = simple_rmdir(inode, dentry); + WARN_ON(err); + } } - -out: - mutex_unlock(&inode->i_mutex); - dput(dentry); return ret; } @@ -623,7 +611,6 @@ long spufs_create(struct path *path, struct dentry *dentry, filp); if (ret >= 0) fsnotify_mkdir(path->dentry->d_inode, dentry); - return ret; out: mutex_unlock(&path->dentry->d_inode->i_mutex);