Re: [PATCH v2 10/12] docs: path-lookup: update WALK_GET, WALK_PUT desc

From: NeilBrown
Date: Sun Apr 18 2021 - 21:47:44 EST


On Tue, Mar 16 2021, Fox Chen wrote:

> WALK_GET is changed to WALK_TRAILING with a different meaning.
> Here it should be WALK_NOFOLLOW. WALK_PUT dosn't exist, we have
> WALK_MORE.
>
> WALK_PUT == !WALK_MORE
>
> And there is not should_follow_link().
>
> Related commits:
> commit 8c4efe22e7c4 ("namei: invert the meaning of WALK_FOLLOW")
> commit 1c4ff1a87e46 ("namei: invert WALK_PUT logics")
>
> Signed-off-by: Fox Chen <foxhlchen@xxxxxxxxx>
> ---
> Documentation/filesystems/path-lookup.rst | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/filesystems/path-lookup.rst b/Documentation/filesystems/path-lookup.rst
> index 0d41c61f7e4f..abd0153e2415 100644
> --- a/Documentation/filesystems/path-lookup.rst
> +++ b/Documentation/filesystems/path-lookup.rst
> @@ -1123,13 +1123,11 @@ stack in ``walk_component()`` immediately when the symlink is found;
> old symlink as it walks that last component. So it is quite
> convenient for ``walk_component()`` to release the old symlink and pop
> the references just before pushing the reference information for the
> -new symlink. It is guided in this by two flags; ``WALK_GET``, which
> -gives it permission to follow a symlink if it finds one, and
> -``WALK_PUT``, which tells it to release the current symlink after it has been
> -followed. ``WALK_PUT`` is tested first, leading to a call to
> -``put_link()``. ``WALK_GET`` is tested subsequently (by
> -``should_follow_link()``) leading to a call to ``pick_link()`` which sets
> -up the stack frame.
> +new symlink. It is guided in this by two flags; ``WALK_NOFOLLOW``, which

There are 3 flags now. You haven't documented WALK_TRAIlING.


> +suggests whether to follow a symlink if it finds one, and

I don't think it is a suggestion.

.. which forbits it from following a symlink if it finds one, and
WALK_MORE which indicates that it is yet too early to release the
current symlink.

> +``WALK_MORE``, which tells whether to release the current symlink after it has
> +been followed. ``WALK_MORE`` is tested first, leading to a call to
> +``put_link()``.

I don't think that "tested first" sentence is relevant any more.

Thanks,
NeilBrown

>
> Symlinks with no final component
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --
> 2.30.2

Attachment: signature.asc
Description: PGP signature