git: 56c44bd92efa - main - automount(8): when flushing autofs, specify fsid

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 17 Oct 2023 16:41:41 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=56c44bd92efa002b2185445878fc98172ae8c66f

commit 56c44bd92efa002b2185445878fc98172ae8c66f
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-09-29 18:43:42 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-10-17 16:40:50 +0000

    automount(8): when flushing autofs, specify fsid
    
    Which should avoid situation where flushed filesystem is not autofs,
    because it was mounted over autofs mp.
    
    Reported and tested by: Andrew "RhodiumToad" Gierth <andrew@tao11.riddles.org.uk>
    PR:     272446
    Reviewed by:    mjg
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D42023
---
 usr.sbin/autofs/automount.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/autofs/automount.c b/usr.sbin/autofs/automount.c
index cee647cb4e2c..6637e16c9129 100644
--- a/usr.sbin/autofs/automount.c
+++ b/usr.sbin/autofs/automount.c
@@ -229,7 +229,7 @@ mount_unmount(struct node *root)
 }
 
 static void
-flush_autofs(const char *fspath)
+flush_autofs(const char *fspath, const fsid_t *fsid)
 {
 	struct iovec *iov = NULL;
 	char errmsg[255];
@@ -242,6 +242,8 @@ flush_autofs(const char *fspath)
 	    __DECONST(void *, "autofs"), (size_t)-1);
 	build_iovec(&iov, &iovlen, "fspath",
 	    __DECONST(void *, fspath), (size_t)-1);
+	build_iovec(&iov, &iovlen, "fsid",
+	    __DECONST(void *, fsid), sizeof(*fsid));
 	build_iovec(&iov, &iovlen, "errmsg",
 	    errmsg, sizeof(errmsg));
 
@@ -291,7 +293,7 @@ flush_caches(void)
 			continue;
 		}
 
-		flush_autofs(mntbuf[i].f_mntonname);
+		flush_autofs(mntbuf[i].f_mntonname, &statbuf.f_fsid);
 	}
 }