Commit 4a00e4bd authored by Fox Chen's avatar Fox Chen Committed by Jonathan Corbet

docs: path-lookup: i_op->follow_link replaced with i_op->get_link

follow_link has been replaced by get_link() which can be
called in RCU mode.

see commit: commit 6b255391 ("replace ->follow_link() with
new method that could stay in RCU mode")
Signed-off-by: default avatarFox Chen <foxhlchen@gmail.com>
Reviewed-by: default avatarNeilBrown <neilb@suse.de>
Link: https://lore.kernel.org/r/20210527091618.287093-8-foxhlchen@gmail.comSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent d2d3dd5e
...@@ -1060,13 +1060,11 @@ filesystem cannot successfully get a reference in RCU-walk mode, it ...@@ -1060,13 +1060,11 @@ filesystem cannot successfully get a reference in RCU-walk mode, it
must return ``-ECHILD`` and ``unlazy_walk()`` will be called to return to must return ``-ECHILD`` and ``unlazy_walk()`` will be called to return to
REF-walk mode in which the filesystem is allowed to sleep. REF-walk mode in which the filesystem is allowed to sleep.
The place for all this to happen is the ``i_op->follow_link()`` inode The place for all this to happen is the ``i_op->get_link()`` inode
method. In the present mainline code this is never actually called in method. This is called both in RCU-walk and REF-walk. In RCU-walk the
RCU-walk mode as the rewrite is not quite complete. It is likely that ``dentry*`` argument is NULL, ``->get_link()`` can return -ECHILD to drop out of
in a future release this method will be passed an ``inode`` pointer when RCU-walk. Much like the ``i_op->permission()`` method we
called in RCU-walk mode so it both (1) knows to be careful, and (2) has the looked at previously, ``->get_link()`` would need to be careful that
validated pointer. Much like the ``i_op->permission()`` method we
looked at previously, ``->follow_link()`` would need to be careful that
all the data structures it references are safe to be accessed while all the data structures it references are safe to be accessed while
holding no counted reference, only the RCU lock. Though getting a holding no counted reference, only the RCU lock. Though getting a
reference with ``->follow_link()`` is not yet done in RCU-walk mode, the reference with ``->follow_link()`` is not yet done in RCU-walk mode, the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment