aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-06-10 18:05:36 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-14 08:34:47 -0400
commitebfc3b49a7ac25920cb5be5445f602e51d2ea559 (patch)
treec3241f875dd04ab9f63b4e7ded7ed206e4df1b9f /Documentation/filesystems
parent72bd866a01fc62ccbc466f3eb7599b14c937e96b (diff)
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 'Documentation/filesystems')
-rw-r--r--Documentation/filesystems/Locking2
-rw-r--r--Documentation/filesystems/porting6
-rw-r--r--Documentation/filesystems/vfs.txt2
3 files changed, 8 insertions, 2 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 33f2c8f1db81..e0cce2a5f820 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -37,7 +37,7 @@ d_manage: no no yes (ref-walk) maybe
37 37
38--------------------------- inode_operations --------------------------- 38--------------------------- inode_operations ---------------------------
39prototypes: 39prototypes:
40 int (*create) (struct inode *,struct dentry *,umode_t, struct nameidata *); 40 int (*create) (struct inode *,struct dentry *,umode_t, bool);
41 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); 41 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
42 int (*link) (struct dentry *,struct inode *,struct dentry *); 42 int (*link) (struct dentry *,struct inode *,struct dentry *);
43 int (*unlink) (struct inode *,struct dentry *); 43 int (*unlink) (struct inode *,struct dentry *);
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index 690f573928b9..2bef2b3843d1 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -436,3 +436,9 @@ d_make_root() drops the reference to inode if dentry allocation fails.
436[mandatory] 436[mandatory]
437 The witch is dead! Well, 2/3 of it, anyway. ->d_revalidate() and 437 The witch is dead! Well, 2/3 of it, anyway. ->d_revalidate() and
438->lookup() do *not* take struct nameidata anymore; just the flags. 438->lookup() do *not* take struct nameidata anymore; just the flags.
439--
440[mandatory]
441 ->create() doesn't take struct nameidata *; unlike the previous
442two, it gets "is it an O_EXCL or equivalent?" boolean argument. Note that
443local filesystems can ignore tha argument - they are guaranteed that the
444object doesn't exist. It's remote/distributed ones that might care...
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index ee786354946c..aa754e01464e 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -341,7 +341,7 @@ This describes how the VFS can manipulate an inode in your
341filesystem. As of kernel 2.6.22, the following members are defined: 341filesystem. As of kernel 2.6.22, the following members are defined:
342 342
343struct inode_operations { 343struct inode_operations {
344 int (*create) (struct inode *,struct dentry *, umode_t, struct nameidata *); 344 int (*create) (struct inode *,struct dentry *, umode_t, bool);
345 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); 345 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
346 int (*link) (struct dentry *,struct inode *,struct dentry *); 346 int (*link) (struct dentry *,struct inode *,struct dentry *);
347 int (*unlink) (struct inode *,struct dentry *); 347 int (*unlink) (struct inode *,struct dentry *);