From dbf30d7d0d608f283799d708c72aad1c9eda0012 Mon Sep 17 00:00:00 2001 From: Al Viro <viro@zeniv.linux.org.uk> Date: Wed, 3 Jul 2013 16:19:23 +0400 Subject: [PATCH] Document ->tmpfile() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Change-Id: I0e97c3fbf0e9afe684d4bf6db8d3d4958e4b07a6 --- Documentation/filesystems/Locking | 2 ++ Documentation/filesystems/vfs.txt | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 1e12b361b6f8..7248c523a411 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking @@ -65,6 +65,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 @@ -94,6 +95,7 @@ truncate_range: yes fiemap: no update_time: no atomic_open: yes +tmpfile: no Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on victim. diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index a8405ddccfab..fb5fc26bb692 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt @@ -366,6 +366,8 @@ struct inode_operations { void (*truncate_range)(struct inode *, loff_t, loff_t); 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); }; @@ -491,6 +493,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 ========================