summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-06-22 18:47:28 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2011-07-20 01:43:45 -0400
commit511415980ace0ceecd71088dbe1c7ce4ca7c79fe (patch)
tree153510403c8053f3287d304c02609c17d07801d3
parent3d4ff43d895c50319af45eb4bf04a4618eccdf76 (diff)
downloadkernel-common-511415980ace0ceecd71088dbe1c7ce4ca7c79fe.tar.gz
kernel-common-511415980ace0ceecd71088dbe1c7ce4ca7c79fe.tar.bz2
kernel-common-511415980ace0ceecd71088dbe1c7ce4ca7c79fe.zip
nameidata_to_nfs_open_context() doesn't need nameidata, actually...
just open flags; switched to passing just those and renamed to create_nfs_open_context() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/nfs/dir.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index a0693f3f11c0..cc613c354bb8 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -1343,11 +1343,11 @@ static int is_atomic_open(struct nameidata *nd)
return 1;
}
-static struct nfs_open_context *nameidata_to_nfs_open_context(struct dentry *dentry, struct nameidata *nd)
+static struct nfs_open_context *create_nfs_open_context(struct dentry *dentry, int open_flags)
{
struct nfs_open_context *ctx;
struct rpc_cred *cred;
- fmode_t fmode = nd->intent.open.flags & (FMODE_READ | FMODE_WRITE | FMODE_EXEC);
+ fmode_t fmode = open_flags & (FMODE_READ | FMODE_WRITE | FMODE_EXEC);
cred = rpc_lookup_cred();
if (IS_ERR(cred))
@@ -1416,12 +1416,13 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry
goto out;
}
- ctx = nameidata_to_nfs_open_context(dentry, nd);
+ open_flags = nd->intent.open.flags;
+
+ ctx = create_nfs_open_context(dentry, open_flags);
res = ERR_CAST(ctx);
if (IS_ERR(ctx))
goto out;
- open_flags = nd->intent.open.flags;
if (nd->flags & LOOKUP_CREATE) {
attr.ia_mode = nd->intent.open.create_mode;
attr.ia_valid = ATTR_MODE;
@@ -1513,7 +1514,7 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd)
/* We can't create new files, or truncate existing ones here */
openflags &= ~(O_CREAT|O_EXCL|O_TRUNC);
- ctx = nameidata_to_nfs_open_context(dentry, nd);
+ ctx = create_nfs_open_context(dentry, openflags);
ret = PTR_ERR(ctx);
if (IS_ERR(ctx))
goto out;
@@ -1577,7 +1578,7 @@ static int nfs_open_create(struct inode *dir, struct dentry *dentry, int mode,
if ((nd->flags & LOOKUP_CREATE) != 0) {
open_flags = nd->intent.open.flags;
- ctx = nameidata_to_nfs_open_context(dentry, nd);
+ ctx = create_nfs_open_context(dentry, open_flags);
error = PTR_ERR(ctx);
if (IS_ERR(ctx))
goto out_err_drop;