Skip to content

Commit

Permalink
move spu_forget() into spufs_rmdir()
Browse files Browse the repository at this point in the history
now that __fput() is *not* done in any callchain containing mmput(),
we can do that...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Jul 29, 2012
1 parent 8cae6f7 commit 67cba9f
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions arch/powerpc/platforms/cell/spufs/inode.c
Expand Up @@ -186,10 +186,13 @@ static void spufs_prune_dir(struct dentry *dir)
static int spufs_rmdir(struct inode *parent, struct dentry *dir)
{
/* remove all entries */
int res;
spufs_prune_dir(dir);
d_drop(dir);

return simple_rmdir(parent, dir);
res = simple_rmdir(parent, dir);
/* We have to give up the mm_struct */
spu_forget(SPUFS_I(dir->d_inode)->i_ctx);
return res;
}

static int spufs_fill_dir(struct dentry *dir,
Expand Down Expand Up @@ -245,9 +248,6 @@ static int spufs_dir_close(struct inode *inode, struct file *file)
mutex_unlock(&parent->i_mutex);
WARN_ON(ret);

/* We have to give up the mm_struct */
spu_forget(ctx);

return dcache_dir_close(inode, file);
}

Expand Down Expand Up @@ -497,7 +497,6 @@ spufs_create_context(struct inode *inode, struct dentry *dentry,
if (affinity)
mutex_unlock(&gang->aff_mutex);
mutex_unlock(&inode->i_mutex);
spu_forget(SPUFS_I(dentry->d_inode)->i_ctx);
goto out;
}

Expand Down

0 comments on commit 67cba9f

Please sign in to comment.