Loading Documentation/filesystems/Locking +2 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ prototypes: int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned open_flag, umode_t create_mode, int *opened); int (*tmpfile) (struct inode *, struct dentry *, umode_t); locking rules: all may block Loading Loading @@ -91,6 +92,7 @@ removexattr: yes fiemap: no update_time: no atomic_open: yes tmpfile: no Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on victim. Loading Documentation/filesystems/vfs.txt +5 −0 Original line number Diff line number Diff line Loading @@ -360,6 +360,8 @@ struct inode_operations { int (*removexattr) (struct dentry *, const char *); void (*update_time)(struct inode *, struct timespec *, int); int (*atomic_open)(struct inode *, struct dentry *, int (*tmpfile) (struct inode *, struct dentry *, umode_t); } ____cacheline_aligned; struct file *, unsigned open_flag, umode_t create_mode, int *opened); }; Loading Loading @@ -472,6 +474,9 @@ otherwise noted. component is negative or needs lookup. Cached positive dentries are still handled by f_op->open(). tmpfile: called in the end of O_TMPFILE open(). Optional, equivalent to atomically creating, opening and unlinking a file in given directory. The Address Space Object ======================== Loading Loading
Documentation/filesystems/Locking +2 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ prototypes: int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned open_flag, umode_t create_mode, int *opened); int (*tmpfile) (struct inode *, struct dentry *, umode_t); locking rules: all may block Loading Loading @@ -91,6 +92,7 @@ removexattr: yes fiemap: no update_time: no atomic_open: yes tmpfile: no Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on victim. Loading
Documentation/filesystems/vfs.txt +5 −0 Original line number Diff line number Diff line Loading @@ -360,6 +360,8 @@ struct inode_operations { int (*removexattr) (struct dentry *, const char *); void (*update_time)(struct inode *, struct timespec *, int); int (*atomic_open)(struct inode *, struct dentry *, int (*tmpfile) (struct inode *, struct dentry *, umode_t); } ____cacheline_aligned; struct file *, unsigned open_flag, umode_t create_mode, int *opened); }; Loading Loading @@ -472,6 +474,9 @@ otherwise noted. component is negative or needs lookup. Cached positive dentries are still handled by f_op->open(). tmpfile: called in the end of O_TMPFILE open(). Optional, equivalent to atomically creating, opening and unlinking a file in given directory. The Address Space Object ======================== Loading