All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fox Chen <foxhlchen@gmail.com>
To: neilb@suse.de
Cc: Fox Chen <foxhlchen@gmail.com>,
	corbet@lwn.net, vegard.nossum@oracle.com,
	viro@zeniv.linux.org.uk, rdunlap@infradead.org,
	grandmaster@al2klimov.de, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org
Subject: [PATCH v2 04/12] docs: path-lookup: update do_last() part
Date: Tue, 16 Mar 2021 13:47:19 +0800	[thread overview]
Message-ID: <20210316054727.25655-5-foxhlchen@gmail.com> (raw)
In-Reply-To: <20210316054727.25655-1-foxhlchen@gmail.com>

traling_symlink() was merged into lookup_last, do_last().

do_last() has later been split into open_last_lookups()
and do_open().

see related commit: commit c5971b8c6354 ("take post-lookup
part of do_last() out of loop")

Signed-off-by: Fox Chen <foxhlchen@gmail.com>
---
 Documentation/filesystems/path-lookup.rst | 35 ++++++++++++-----------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/Documentation/filesystems/path-lookup.rst b/Documentation/filesystems/path-lookup.rst
index b6a301b78121..a65cb477d524 100644
--- a/Documentation/filesystems/path-lookup.rst
+++ b/Documentation/filesystems/path-lookup.rst
@@ -495,11 +495,11 @@ This is important when unmounting a filesystem that is inaccessible, such as
 one provided by a dead NFS server.
 
 Finally ``path_openat()`` is used for the ``open()`` system call; it
-contains, in support functions starting with "``do_last()``", all the
+contains, in support functions starting with "``open_last_lookups()``", all the
 complexity needed to handle the different subtleties of O_CREAT (with
 or without O_EXCL), final "``/``" characters, and trailing symbolic
 links.  We will revisit this in the final part of this series, which
-focuses on those symbolic links.  "``do_last()``" will sometimes, but
+focuses on those symbolic links.  "``open_last_lookups()``" will sometimes, but
 not always, take ``i_rwsem``, depending on what it finds.
 
 Each of these, or the functions which call them, need to be alert to
@@ -1199,26 +1199,27 @@ symlink.
 This case is handled by the relevant caller of ``link_path_walk()``, such as
 ``path_lookupat()`` using a loop that calls ``link_path_walk()``, and then
 handles the final component.  If the final component is a symlink
-that needs to be followed, then ``trailing_symlink()`` is called to set
-things up properly and the loop repeats, calling ``link_path_walk()``
-again.  This could loop as many as 40 times if the last component of
-each symlink is another symlink.
+that needs to be followed, then ``open_last_lookups()`` is
+called to set things up properly and the loop repeats, calling
+``link_path_walk()`` again.  This could loop as many as 40 times if the last
+component of each symlink is another symlink.
 
 The various functions that examine the final component and possibly
-report that it is a symlink are ``lookup_last()``, ``mountpoint_last()``
-and ``do_last()``, each of which use the same convention as
-``walk_component()`` of returning ``1`` if a symlink was found that needs
-to be followed.
+report that it is a symlink are ``lookup_last()``, ``open_last_lookups()``
+, each of which use the same convention as
+``walk_component()`` of returning ``char *name`` if a symlink was found that
+needs to be followed.
 
-Of these, ``do_last()`` is the most interesting as it is used for
-opening a file.  Part of ``do_last()`` runs with ``i_rwsem`` held and this
-part is in a separate function: ``lookup_open()``.
+Of these, ``open_last_lookups()`` is the most interesting as it works in tandem
+with ``do_open()`` for opening a file.  Part of ``open_last_lookups()`` runs
+with ``i_rwsem`` held and this part is in a separate function: ``lookup_open()``.
 
-Explaining ``do_last()`` completely is beyond the scope of this article,
-but a few highlights should help those interested in exploring the
-code.
+Explaining ``open_last_lookups()`` and ``do_open()`` completely is beyond the scope
+of this article, but a few highlights should help those interested in exploring
+the code.
 
-1. Rather than just finding the target file, ``do_last()`` needs to open
+1. Rather than just finding the target file, ``do_open()`` is used after
+   ``open_last_lookup()`` to open
    it.  If the file was found in the dcache, then ``vfs_open()`` is used for
    this.  If not, then ``lookup_open()`` will either call ``atomic_open()`` (if
    the filesystem provides it) to combine the final lookup with the open, or
-- 
2.30.2


  parent reply	other threads:[~2021-03-16  5:48 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-16  5:47 [PATCH v2 00/12] docs: path-lookup: Update pathlookup docs Fox Chen
2021-03-16  5:47 ` [PATCH v2 01/12] docs: path-lookup: update follow_managed() part Fox Chen
2021-04-19  0:52   ` NeilBrown
2021-04-19  2:17   ` Matthew Wilcox
2021-04-19  2:33     ` Fox Chen
2021-04-19  3:25       ` Matthew Wilcox
2021-04-19  3:33         ` Fox Chen
2021-04-19 19:22           ` Jonathan Corbet
2021-04-20  1:12             ` Fox Chen
2021-03-16  5:47 ` [PATCH v2 02/12] docs: path-lookup: update path_to_nameidata() part Fox Chen
2021-04-19  1:00   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 03/12] docs: path-lookup: update path_mountpoint() part Fox Chen
2021-04-19  1:03   ` NeilBrown
2021-03-16  5:47 ` Fox Chen [this message]
2021-04-19  1:17   ` [PATCH v2 04/12] docs: path-lookup: update do_last() part NeilBrown
2021-03-16  5:47 ` [PATCH v2 05/12] docs: path-lookup: remove filename_mountpoint Fox Chen
2021-04-19  1:20   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 06/12] docs: path-lookup: Add macro name to symlink limit description Fox Chen
2021-04-19  1:22   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 07/12] docs: path-lookup: i_op->follow_link replaced with i_op->get_link Fox Chen
2021-04-19  1:28   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 08/12] docs: path-lookup: update i_op->put_link and cookie description Fox Chen
2021-04-19  1:37   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 09/12] docs: path-lookup: no get_link() Fox Chen
2021-04-19  1:41   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 10/12] docs: path-lookup: update WALK_GET, WALK_PUT desc Fox Chen
2021-04-19  1:47   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 11/12] docs: path-lookup: update get_link() ->follow_link description Fox Chen
2021-04-19  1:54   ` NeilBrown
2021-03-16  5:47 ` [PATCH v2 12/12] docs: path-lookup: update symlink description Fox Chen
2021-04-19  1:59   ` NeilBrown
2021-04-19  2:34     ` Fox Chen
2021-04-13 21:18 ` [PATCH v2 00/12] docs: path-lookup: Update pathlookup docs Jonathan Corbet
2021-04-13 22:26   ` NeilBrown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210316054727.25655-5-foxhlchen@gmail.com \
    --to=foxhlchen@gmail.com \
    --cc=corbet@lwn.net \
    --cc=grandmaster@al2klimov.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=rdunlap@infradead.org \
    --cc=vegard.nossum@oracle.com \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.