Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Feb 2025 23:13:52 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Kyle Evans <kevans@freebsd.org>
Cc:        Ronald Klop <ronald-lists@klop.ws>, dev-commits-src-all@freebsd.org, src-committers@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: e59991206b14 - main - fts(3): be less strict when automount does its job under us walking autofs mount
Message-ID:  <Z7-EEDBylca1j5Py@kib.kiev.ua>
In-Reply-To: <fadcc483-91b7-4f0d-8190-7a720bd7f101@FreeBSD.org>
References:  <985139317.7211.1740577017034@localhost> <fadcc483-91b7-4f0d-8190-7a720bd7f101@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 26, 2025 at 08:03:33AM -0600, Kyle Evans wrote:
> On 2/26/25 07:36, Ronald Klop wrote:
> > 
> > *Van:* Konstantin Belousov <kib@FreeBSD.org>
> > *Datum:* 25 februari 2025 08:20
> > *Aan:* src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-
> > commits-src-main@FreeBSD.org
> > *Onderwerp:* git: e59991206b14 - main - fts(3): be less strict when
> > automount does its job under us walking autofs mount
> > 
> >     The branch main has been updated by kib:
> > 
> >     URL: https://cgit.FreeBSD.org/src/commit/?
> >     id=e59991206b1463b7e85cc8aafde7f1dc03fcedcf <https://
> >     cgit.FreeBSD.org/src/commit/?
> >     id=e59991206b1463b7e85cc8aafde7f1dc03fcedcf>
> > 
> >     commit e59991206b1463b7e85cc8aafde7f1dc03fcedcf
> >     Author:     Konstantin Belousov
> >     AuthorDate: 2025-02-21 13:07:43 +0000
> >     Commit:     Konstantin Belousov
> >     CommitDate: 2025-02-25 07:09:29 +0000
> > 
> >          fts(3): be less strict when automount does its job under us
> >     walking autofs mount
> > 
> >          Namely, allow the file id change if the resulting file belongs to
> >          automounted filesystem.  If it is, remember the updated id.
> > 
> >          This allows the ids from the automounted volumes to change without
> >          restrictions, might be a further refinement would be to only
> >     allow such
> >          inconsistency once.
> > 
> >          PR:     284914
> >          Reported and tested by: Lexi Winter
> >          Sponsored by:   The FreeBSD Foundation
> >          MFC after:      1 week
> >          Differential revision: https://reviews.freebsd.org/D49094
> >     <https://reviews.freebsd.org/D49094>;
> >     ---
> >       lib/libc/gen/fts.c | 13 ++++++++++---
> >       1 file changed, 10 insertions(+), 3 deletions(-)
> > 
> >     diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c
> >     index 770a7b2cc322..bd193c7c6cfc 100644
> >     --- a/lib/libc/gen/fts.c
> >     +++ b/lib/libc/gen/fts.c
> >     @@ -1132,6 +1132,7 @@ fts_safe_changedir(FTS *sp, FTSENT *p, int fd,
> >     char *path)
> >       {
> >          int ret, oerrno, newfd;
> >          struct stat sb;
> >     +   struct statfs sf;
> > 
> >          newfd = fd;
> >          if (ISSET(FTS_NOCHDIR))
> >     @@ -1144,9 +1145,15 @@ fts_safe_changedir(FTS *sp, FTSENT *p, int
> >     fd, char *path)
> >              goto bail;
> >          }
> >          if (p->fts_dev != sb.st_dev || p->fts_ino != sb.st_ino) {
> >     -       errno = ENOENT;     /* disinformation */
> >     -       ret = -1;
> >     -       goto bail;
> >     +       if (_fstatfs(newfd, &sf) != 0 ||
> >     +           (sf.f_flags & MNT_AUTOMOUNTED) == 0) {
> >     +           errno = ENOENT;     /* disinformation */
> >     +           ret = -1;
> >     +           goto bail;
> >     +       }
> >     +       /* autofs might did the mount under us, accept. */
> >     +       p->fts_dev = sb.st_dev;
> >     +       p->fts_ino == sb.st_ino;
> >          }
> >          ret = fchdir(newfd);
> >       bail:
> > 
> >     ------------------------------------------------------------------------
> > 
> > 
> > 
> >     /* autofs might did the mount under us, accept. */
> > 
> > 
> > I’m not native English so forgive me my question. But what does this
> > comment mean?
> > 
> 
> It might have triggered an autofs mount while we're running, so we just
> accept the otherwise suspicious looking change.
If you have a better formulation for the comment, please go ahead and
commit. I did not wanted to give too formal explanation there, esp. due
to the notes given in the commit message.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Z7-EEDBylca1j5Py>