document alloc_file() changes
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 9 Jul 2018 23:20:08 +0000 (19:20 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 12 Jul 2018 14:04:29 +0000 (10:04 -0400)
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Documentation/filesystems/porting

index c68ea9294b5f02462f2f623daab6ac283b7f27ac..7b7b845c490a4b187183b5acc7dead9e0141c45d 100644 (file)
@@ -610,3 +610,15 @@ in your dentry operations instead.
        value for 'called finish_no_open(), open it yourself' case has become
        0, not 1.  Since finish_no_open() itself is returning 0 now, that part
        does not need any changes in ->atomic_open() instances.
+--
+[mandatory]
+       alloc_file() has become static now; two wrappers are to be used instead.
+       alloc_file_pseudo(inode, vfsmount, name, flags, ops) is for the cases
+       when dentry needs to be created; that's the majority of old alloc_file()
+       users.  Calling conventions: on success a reference to new struct file
+       is returned and callers reference to inode is subsumed by that.  On
+       failure, ERR_PTR() is returned and no caller's references are affected,
+       so the caller needs to drop the inode reference it held.
+       alloc_file_clone(file, flags, ops) does not affect any caller's references.
+       On success you get a new struct file sharing the mount/dentry with the
+       original, on failure - ERR_PTR().