diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-10 18:05:36 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-14 16:34:47 +0400 |
commit | ebfc3b49a7ac25920cb5be5445f602e51d2ea559 (patch) | |
tree | c3241f875dd04ab9f63b4e7ded7ed206e4df1b9f /fs/namei.c | |
parent | 72bd866a01fc62ccbc466f3eb7599b14c937e96b (diff) | |
download | blackbird-op-linux-ebfc3b49a7ac25920cb5be5445f602e51d2ea559.tar.gz blackbird-op-linux-ebfc3b49a7ac25920cb5be5445f602e51d2ea559.zip |
don't pass nameidata to ->create()
boolean "does it have to be exclusive?" flag is passed instead;
Local filesystem should just ignore it - the object is guaranteed
not to be there yet.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/namei.c b/fs/namei.c index fc01090a96c1..fd71156bfd74 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2082,7 +2082,6 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, struct nameidata *nd) { int error = may_create(dir, dentry); - if (error) return error; @@ -2093,7 +2092,7 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, error = security_inode_create(dir, dentry, mode); if (error) return error; - error = dir->i_op->create(dir, dentry, mode, nd); + error = dir->i_op->create(dir, dentry, mode, !nd || (nd->flags & LOOKUP_EXCL)); if (!error) fsnotify_create(dir, dentry); return error; |