summaryrefslogtreecommitdiff
path: root/fs/namei.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2012-06-14 16:13:46 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-14 16:34:57 +0400
commit1acf0af9b981027f3e73e93f0d3f85abdc794f71 (patch)
treebf09e52d1b0487dde325008b533853ac277bb264 /fs/namei.c
parent312b63fba9e88a0dcf800834b8ede8716bcc1e17 (diff)
VFS: Fix the banner comment on lookup_open()
Since commit 197e37d9, the banner comment on lookup_open() no longer matches what the function returns. It used to return a struct file pointer or NULL and now it returns an integer and is passed the struct file pointer it is to use amongst its arguments. Update the comment to reflect this. Also add a banner comment to atomic_open(). Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namei.c')
-rw-r--r--fs/namei.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/fs/namei.c b/fs/namei.c
index ffcd4e114b6e..5abab9176903 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2192,6 +2192,19 @@ static int may_o_create(struct path *dir, struct dentry *dentry, umode_t mode)
return security_inode_create(dir->dentry->d_inode, dentry, mode);
}
+/*
+ * Attempt to atomically look up, create and open a file from a negative
+ * dentry.
+ *
+ * Returns 0 if successful. The file will have been created and attached to
+ * @file by the filesystem calling finish_open().
+ *
+ * Returns 1 if the file was looked up only or didn't need creating. The
+ * caller will need to perform the open themselves. @path will have been
+ * updated to point to the new dentry. This may be negative.
+ *
+ * Returns an error code otherwise.
+ */
static int atomic_open(struct nameidata *nd, struct dentry *dentry,
struct path *path, struct file *file,
const struct open_flags *op,
@@ -2336,12 +2349,22 @@ looked_up:
}
/*
- * Lookup, maybe create and open the last component
+ * Look up and maybe create and open the last component.
*
* Must be called with i_mutex held on parent.
*
- * Returns open file or NULL on success, error otherwise. NULL means no open
- * was performed, only lookup.
+ * Returns 0 if the file was successfully atomically created (if necessary) and
+ * opened. In this case the file will be returned attached to @file.
+ *
+ * Returns 1 if the file was not completely opened at this time, though lookups
+ * and creations will have been performed and the dentry returned in @path will
+ * be positive upon return if O_CREAT was specified. If O_CREAT wasn't
+ * specified then a negative dentry may be returned.
+ *
+ * An error code is returned otherwise.
+ *
+ * FILE_CREATE will be set in @*opened if the dentry was created and will be
+ * cleared otherwise prior to returning.
*/
static int lookup_open(struct nameidata *nd, struct path *path,
struct file *file,