Merge branch 'work.open3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / Documentation / filesystems / vfs.txt
index f608180..85907d5 100644 (file)
@@ -386,7 +386,7 @@ struct inode_operations {
        ssize_t (*listxattr) (struct dentry *, char *, size_t);
        void (*update_time)(struct inode *, struct timespec *, int);
        int (*atomic_open)(struct inode *, struct dentry *, struct file *,
-                       unsigned open_flag, umode_t create_mode, int *opened);
+                       unsigned open_flag, umode_t create_mode);
        int (*tmpfile) (struct inode *, struct dentry *, umode_t);
 };
 
@@ -496,13 +496,15 @@ otherwise noted.
 
   atomic_open: called on the last component of an open.  Using this optional
        method the filesystem can look up, possibly create and open the file in
-       one atomic operation.  If it cannot perform this (e.g. the file type
-       turned out to be wrong) it may signal this by returning 1 instead of
-       usual 0 or -ve .  This method is only called if the last component is
-       negative or needs lookup.  Cached positive dentries are still handled by
-       f_op->open().  If the file was created, the FILE_CREATED flag should be
-       set in "opened".  In case of O_EXCL the method must only succeed if the
-       file didn't exist and hence FILE_CREATED shall always be set on success.
+       one atomic operation.  If it wants to leave actual opening to the
+       caller (e.g. if the file turned out to be a symlink, device, or just
+       something filesystem won't do atomic open for), it may signal this by
+       returning finish_no_open(file, dentry).  This method is only called if
+       the last component is negative or needs lookup.  Cached positive dentries
+       are still handled by f_op->open().  If the file was created,
+       FMODE_CREATED flag should be set in file->f_mode.  In case of O_EXCL
+       the method must only succeed if the file didn't exist and hence FMODE_CREATED
+       shall always be set on success.
 
   tmpfile: called in the end of O_TMPFILE open().  Optional, equivalent to
        atomically creating, opening and unlinking a file in given directory.