Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
7fdbd31593 |
@ -0,0 +1,78 @@
|
|||||||
|
From 5ca4d781d36946de197ed2d4196c84c8f6b4522f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ian Kent <raven@themaw.net>
|
||||||
|
Date: Mon, 12 Oct 2020 15:40:01 -0400
|
||||||
|
Subject: [PATCH] xfsprogs: ignore autofs mount table entries
|
||||||
|
|
||||||
|
Some of the xfsprogs utilities read the mount table via. getmntent(3).
|
||||||
|
|
||||||
|
The mount table may contain (almost always these days since /etc/mtab is
|
||||||
|
symlinked to /proc/self/mounts) autofs mount entries. During processing
|
||||||
|
of the mount table entries statfs(2) can be called on mount point paths
|
||||||
|
which will trigger an automount if those entries are direct or offset
|
||||||
|
autofs mount triggers (indirect autofs mounts aren't affected).
|
||||||
|
|
||||||
|
This can be a problem when there are a lot of autofs direct or offset
|
||||||
|
mounts because real mounts will be triggered when statfs(2) is called.
|
||||||
|
This can be particularly bad if the triggered mounts are NFS mounts and
|
||||||
|
the server is unavailable leading to lengthy boot times or worse.
|
||||||
|
|
||||||
|
Simply ignoring autofs mount entries during getmentent(3) traversals
|
||||||
|
avoids the statfs() call that triggers these mounts. If there are
|
||||||
|
automounted mounts (real mounts) at the time of reading the mount table
|
||||||
|
these will still be seen in the list so they will be included if that
|
||||||
|
actually matters to the reader.
|
||||||
|
|
||||||
|
Recent glibc getmntent(3) can ignore autofs mounts but that requires the
|
||||||
|
autofs user to configure autofs to use the "ignore" pseudo mount option
|
||||||
|
for autofs mounts. But this isn't yet the autofs default (to prevent
|
||||||
|
unexpected side effects) so that can't be used.
|
||||||
|
|
||||||
|
The autofs direct and offset automount triggers are pseudo file system
|
||||||
|
mounts and are more or less useless in terms on file system information
|
||||||
|
so excluding them doesn't sacrifice useful file system information
|
||||||
|
either.
|
||||||
|
|
||||||
|
Consequently excluding autofs mounts shouldn't have any adverse side
|
||||||
|
effects.
|
||||||
|
|
||||||
|
Changes since v1:
|
||||||
|
- drop hunk from fsr/xfs_fsr.c.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||||
|
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
|
||||||
|
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
libfrog/linux.c | 2 ++
|
||||||
|
libfrog/paths.c | 2 ++
|
||||||
|
2 files changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/libfrog/linux.c b/libfrog/linux.c
|
||||||
|
index 40a839d1..a45d99ab 100644
|
||||||
|
--- a/libfrog/linux.c
|
||||||
|
+++ b/libfrog/linux.c
|
||||||
|
@@ -73,6 +73,8 @@ platform_check_mount(char *name, char *block, struct stat *s, int flags)
|
||||||
|
* servers. So first, a simple check: does the "dev" start with "/" ?
|
||||||
|
*/
|
||||||
|
while ((mnt = getmntent(f)) != NULL) {
|
||||||
|
+ if (!strcmp(mnt->mnt_type, "autofs"))
|
||||||
|
+ continue;
|
||||||
|
if (mnt->mnt_fsname[0] != '/')
|
||||||
|
continue;
|
||||||
|
if (stat(mnt->mnt_dir, &mst) < 0)
|
||||||
|
diff --git a/libfrog/paths.c b/libfrog/paths.c
|
||||||
|
index 32737223..d6793764 100644
|
||||||
|
--- a/libfrog/paths.c
|
||||||
|
+++ b/libfrog/paths.c
|
||||||
|
@@ -389,6 +389,8 @@ fs_table_initialise_mounts(
|
||||||
|
return errno;
|
||||||
|
|
||||||
|
while ((mnt = getmntent(mtp)) != NULL) {
|
||||||
|
+ if (!strcmp(mnt->mnt_type, "autofs"))
|
||||||
|
+ continue;
|
||||||
|
if (!realpath(mnt->mnt_dir, rmnt_dir))
|
||||||
|
continue;
|
||||||
|
if (!realpath(mnt->mnt_fsname, rmnt_fsname))
|
||||||
|
--
|
||||||
|
2.40.1
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
Summary: Utilities for managing the XFS filesystem
|
Summary: Utilities for managing the XFS filesystem
|
||||||
Name: xfsprogs
|
Name: xfsprogs
|
||||||
Version: 5.0.0
|
Version: 5.0.0
|
||||||
Release: 10%{?dist}
|
Release: 11%{?dist}.alma
|
||||||
License: GPL+ and LGPLv2+
|
License: GPL+ and LGPLv2+
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
URL: https://xfs.wiki.kernel.org
|
URL: https://xfs.wiki.kernel.org
|
||||||
@ -80,6 +80,8 @@ Patch59: xfsprogs-5.13.0-xfs-rename-struct-xfs_legacy_ictimestamp.patch
|
|||||||
Patch60: xfsprogs-5.11.0-mkfs-fix-wrong-inobtcount-usage-error-output.patch
|
Patch60: xfsprogs-5.11.0-mkfs-fix-wrong-inobtcount-usage-error-output.patch
|
||||||
Patch61: xfsprogs-5.12.0-libxfs-expose-inobtcount-in-xfs-geometry.patch
|
Patch61: xfsprogs-5.12.0-libxfs-expose-inobtcount-in-xfs-geometry.patch
|
||||||
Patch62: xfsprogs-5.12.0-libfrog-report-inobtcount-in-geometry.patch
|
Patch62: xfsprogs-5.12.0-libfrog-report-inobtcount-in-geometry.patch
|
||||||
|
# Patch taken from https://gitlab.com/redhat/centos-stream/rpms/xfsprogs/-/raw/36ef20b66f7c0dc1681985fd5e22df3d6b243b1b/xfsprogs-5.9.0-xfs-ignore-autofs-mount-table-entries.patch
|
||||||
|
Patch63: xfsprogs-5.9.0-xfs-ignore-autofs-mount-table-entries.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
A set of commands to use the XFS filesystem, including mkfs.xfs.
|
A set of commands to use the XFS filesystem, including mkfs.xfs.
|
||||||
@ -173,6 +175,7 @@ also want to install xfsprogs.
|
|||||||
%patch60 -p1
|
%patch60 -p1
|
||||||
%patch61 -p1
|
%patch61 -p1
|
||||||
%patch62 -p1
|
%patch62 -p1
|
||||||
|
%patch63 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export tagname=CC
|
export tagname=CC
|
||||||
@ -232,6 +235,9 @@ rm -rf $RPM_BUILD_ROOT/%{_mandir}/man8/xfs_scrub*
|
|||||||
%{_libdir}/*.so
|
%{_libdir}/*.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 13 2023 Andrew Lukoshko <alukoshko@almalinux.org> - 5.0.0-11.alma
|
||||||
|
- ignore autofs mount table entries
|
||||||
|
|
||||||
* Thu Dec 09 2021 Bill O'Donnell <bodonnel@redhat.com> 5.0.0-10
|
* Thu Dec 09 2021 Bill O'Donnell <bodonnel@redhat.com> 5.0.0-10
|
||||||
- xfsprogs: enable bigtime and inode btree counter features in RHEL8 (#2024201))
|
- xfsprogs: enable bigtime and inode btree counter features in RHEL8 (#2024201))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user