coreutils/backport-stat-only-automount-with-cached-never.patch
h30032433 80b999f39c sync patches from community
(cherry picked from commit 0c9adb86cb84d4f086e9660601e48e84d9a2dc48)
2024-09-12 09:24:29 +08:00

68 lines
2.1 KiB
Diff

From 92cb8427c537f37edd43c5cef1909585201372ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
Date: Mon, 7 Mar 2022 23:29:20 +0000
Subject: [PATCH] stat: only automount with --cached=never
Revert to the default behavior before the introduction of statx().
* src/stat.c (do_stat): Set AT_NO_AUTOMOUNT without --cached=never.
* doc/coreutils.texi (stat invocation): Mention the automount
behavior with --cached=never.
* NEWS: Mention the change in behavior.
Fixes https://bugs.gnu.org/54287
Reference:https://github.com/coreutils/coreutils/commit/92cb8427c537f37edd43c5cef1909585201372ab
Conflict:Context adaptation
---
NEWS | 4 ++++
doc/coreutils.texi | 1 +
src/stat.c | 3 +++
3 files changed, 8 insertions(+)
diff --git a/NEWS b/NEWS
index 0076273..91c78df 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,10 @@ GNU coreutils NEWS -*- outline -*-
ls no longer tries to automount files, reverting to the behavior
before the statx() call was introduced in coreutils-8.32.
+ stat no longer tries to automount files by default, reverting to the
+ behavior before the statx() call was introduced in coreutils-8.32.
+ Only `stat --cached=never` will continue to automount files.
+
chmod -v no longer misreports modes of dangling symlinks.
[bug introduced in coreutils-5.3.0]
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index e9be0993a..05dc5ee21 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -12608,6 +12608,7 @@ Always read the already cached attributes if available.
@item never
Always sychronize with the latest file system attributes.
+This also mounts automounted files.
@item default
Leave the caching behavior to the underlying file system.
diff --git a/src/stat.c b/src/stat.c
index 0c34501..803340a 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -1381,6 +1381,9 @@ do_stat (char const *filename, char const *format, char const *format2)
else if (force_sync)
flags |= AT_STATX_FORCE_SYNC;
+ if (! force_sync)
+ flags |= AT_NO_AUTOMOUNT;
+
fd = statx (fd, pathname, flags, format_to_mask (format), &stx);
if (fd < 0)
{
--
2.33.0