summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-04-11 16:16:28 -0700
committerAl Viro <viro@zeniv.linux.org.uk>2019-04-30 23:59:25 -0400
commitdcb2cb1f26f91df486492e2f2c2d62fe751fd21a (patch)
tree90d33b68a636396a61e8f7f57db225be1c2188b5
parentc59a89972258102e7d22cda5927e6c8121d84f26 (diff)
downloadlinux-dcb2cb1f26f91df486492e2f2c2d62fe751fd21a.tar.gz
Documentation/filesystems/vfs.txt: document how ->i_link works
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--Documentation/filesystems/vfs.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index 33120f220f86..57fc576b1f3e 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -463,6 +463,12 @@ otherwise noted.
 	argument.  If request can't be handled without leaving RCU mode,
 	have it return ERR_PTR(-ECHILD).
 
+	If the filesystem stores the symlink target in ->i_link, the
+	VFS may use it directly without calling ->get_link(); however,
+	->get_link() must still be provided.  ->i_link must not be
+	freed until after an RCU grace period.  Writing to ->i_link
+	post-iget() time requires a 'release' memory barrier.
+
   readlink: this is now just an override for use by readlink(2) for the
 	cases when ->get_link uses nd_jump_link() or object is not in
 	fact a symlink.  Normally filesystems should only implement