All of lore.kernel.org
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Fox Chen <foxhlchen@gmail.com>
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: Re: [PATCH v2 12/12] docs: path-lookup: update symlink description
Date: Mon, 19 Apr 2021 11:59:50 +1000	[thread overview]
Message-ID: <87mttv11bd.fsf@notabene.neil.brown.name> (raw)
In-Reply-To: <20210316054727.25655-13-foxhlchen@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3103 bytes --]

On Tue, Mar 16 2021, Fox Chen wrote:

> instead of lookup_real()/vfs_create(), i_op->lookup() and
> i_op->create() will be called directly.
>
> update vfs_open() logic
>
> should_follow_link is merged into lookup_last() or open_last_lookup()
> which returns symlink name instead of an integer.
>
> Signed-off-by: Fox Chen <foxhlchen@gmail.com>
> ---
>  Documentation/filesystems/path-lookup.rst | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/filesystems/path-lookup.rst b/Documentation/filesystems/path-lookup.rst
> index eef6e9f68fba..adbc714740c2 100644
> --- a/Documentation/filesystems/path-lookup.rst
> +++ b/Documentation/filesystems/path-lookup.rst
> @@ -1202,16 +1202,15 @@ the code.
>     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
> -   will perform the separate ``lookup_real()`` and ``vfs_create()`` steps
> +   will perform the separate ``i_op->lookup()`` and ``i_op->create()`` steps
>     directly.  In the later case the actual "open" of this newly found or
>     created file will be performed by ``vfs_open()``, just as if the name
>     were found in the dcache.
>  
>  2. ``vfs_open()`` can fail with ``-EOPENSTALE`` if the cached information
> -   wasn't quite current enough.  Rather than restarting the lookup from
> -   the top with ``LOOKUP_REVAL`` set, ``lookup_open()`` is called instead,
> -   giving the filesystem a chance to resolve small inconsistencies.
> -   If that doesn't work, only then is the lookup restarted from the top.
> +   wasn't quite current enough.  If it's in RCU-walk -ECHILD will be returned
> +   otherwise will return -ESTALE.  When -ESTALE is returned, the caller may

"otherwise -ESTALE is returned".
If you don't like repeating "is returned", then maybe:
  "... -ECHILD will be returned, otherwise the result is -ESTALE".


> +   retry with LOOKUP_REVAL flag set.
>  
>  3. An open with O_CREAT **does** follow a symlink in the final component,
>     unlike other creation system calls (like ``mkdir``).  So the sequence::
> @@ -1221,8 +1220,8 @@ the code.
>  
>     will create a file called ``/tmp/bar``.  This is not permitted if
>     ``O_EXCL`` is set but otherwise is handled for an O_CREAT open much
> -   like for a non-creating open: ``should_follow_link()`` returns ``1``, and
> -   so does ``do_last()`` so that ``trailing_symlink()`` gets called and the
> +   like for a non-creating open: ``lookup_last()`` or ``open_last_lookup()``
> +   returns a non ``Null`` value, and ``link_path_walk()`` gets called and the

"NULL", not "Null".

This those changes,
 Reviewed-by: NeilBrown <neilb@suse.de>

Thanks for a lot of all these improvements!! and apologies for the delay
in the review.

Thanks,
NeilBrown


>     open process continues on the symlink that was found.
>  
>  Updating the access time
> -- 
> 2.30.2

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 853 bytes --]

  reply	other threads:[~2021-04-19  1:59 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 ` [PATCH v2 04/12] docs: path-lookup: update do_last() part Fox Chen
2021-04-19  1:17   ` 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 [this message]
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=87mttv11bd.fsf@notabene.neil.brown.name \
    --to=neilb@suse.de \
    --cc=corbet@lwn.net \
    --cc=foxhlchen@gmail.com \
    --cc=grandmaster@al2klimov.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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.