* [PATCH] Revert "nfsrahead: enable event-driven mountinfo monitoring and skip non-NFS devices"
@ 2026-03-10 12:36 Steve Dickson
2026-03-10 13:28 ` Aaron Tomlin
0 siblings, 1 reply; 3+ messages in thread
From: Steve Dickson @ 2026-03-10 12:36 UTC (permalink / raw)
To: Linux NFS Mailing list
Process 869 (nfsrahead) of user 0 dumped core.
Module /usr/libexec/nfsrahead from rpm nfs-utils-2.8.6-0.fc43.x86_64
Module libpcre2-8.so.0 from rpm pcre2-10.47-1.fc43.x86_64
Module libselinux.so.1 from rpm libselinux-3.9-5.fc43.x86_64
Module libblkid.so.1 from rpm util-linux-2.41.3-7.fc43.x86_64
Module libmount.so.1 from rpm util-linux-2.41.3-7.fc43.x86_64
Stack trace of thread 869:
#0 0x00007f1a867653cc __pthread_kill_implementation (libc.so.6 + 0x743cc)
#1 0x00007f1a8670b15e raise (libc.so.6 + 0x1a15e)
#2 0x00007f1a866f26d0 abort (libc.so.6 + 0x16d0)
#3 0x00007f1a866f373b __libc_message_impl.cold (libc.so.6 + 0x273b)
#4 0x00007f1a8676f665 malloc_printerr (libc.so.6 + 0x7e665)
#5 0x00007f1a8676f684 malloc_printerr_tail (libc.so.6 + 0x7e684)
#6 0x00005624543b1d32 main (/usr/libexec/nfsrahead + 0xd32)
#7 0x00007f1a866f45b5 __libc_start_call_main (libc.so.6 + 0x35b5)
#8 0x00007f1a866f4668 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3668)
#9 0x00005624543b1fb5 _start (/usr/libexec/nfsrahead + 0xfb5)
ELF object binary architecture: AMD x86-64
https://bodhi.fedoraproject.org/updates/FEDORA-2026-e033b6bafe
This reverts commit 0f5fe65d83f7455112aea82bf96f99523cb03ca7.
---
tools/nfsrahead/main.c | 55 +-----------------------------------------
1 file changed, 1 insertion(+), 54 deletions(-)
diff --git a/tools/nfsrahead/main.c b/tools/nfsrahead/main.c
index 78cd2581..b7b889ff 100644
--- a/tools/nfsrahead/main.c
+++ b/tools/nfsrahead/main.c
@@ -3,7 +3,6 @@
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
-#include <time.h>
#include <libmount/libmount.h>
#include <sys/sysmacros.h>
@@ -18,8 +17,6 @@
#define CONF_NAME "nfsrahead"
#define NFS_DEFAULT_READAHEAD 128
-#define MNT_NM_TIMEOUT 10000
-
/* Device information from the system */
struct device_info {
char *device_number;
@@ -120,57 +117,7 @@ out_free_device_info:
static int get_device_info(const char *device_number, struct device_info *device_info)
{
- int ret;
- struct libmnt_monitor *mn = NULL;
- struct timespec start, now;
- int remaining_ms = MNT_NM_TIMEOUT;
-
- /*
- * Fast-path rejection:
- * NFS backing devices always use the anonymous block device major number (0).
- * If the device number does not start with "0:", it is a physical block device
- * and will never be an NFS mount. Exit immediately to prevent blocking udev.
- */
- if (strncmp(device_number, "0:", 2) != 0)
- return -ENODEV;
-
- ret = get_mountinfo(device_number, device_info, MOUNTINFO_PATH);
- if (ret == 0)
- return 0;
-
- mn = mnt_new_monitor();
- if (!mn)
- goto fallback;
-
- if (mnt_monitor_enable_kernel(mn, 1) < 0) {
- mnt_unref_monitor(mn);
- goto fallback;
- }
-
- clock_gettime(CLOCK_MONOTONIC, &start);
-
- while (remaining_ms > 0) {
- int rc = mnt_monitor_wait(mn, remaining_ms);
- if (rc > 0) {
- ret = get_mountinfo(device_number, device_info, MOUNTINFO_PATH);
- if (ret == 0) {
- mnt_unref_monitor(mn);
- return 0;
- }
- } else {
- break;
- }
-
- clock_gettime(CLOCK_MONOTONIC, &now);
- long elapsed_ms = (now.tv_sec - start.tv_sec) * 1000 +
- (now.tv_nsec - start.tv_nsec) / 1000000;
- remaining_ms = MNT_NM_TIMEOUT - elapsed_ms;
- }
-
- mnt_unref_monitor(mn);
- return ret;
-
-fallback:
+ int ret = get_mountinfo(device_number, device_info, MOUNTINFO_PATH);
for (int retry_count = 0; retry_count < 5 && ret != 0; retry_count++) {
usleep(50000);
ret = get_mountinfo(device_number, device_info, MOUNTINFO_PATH);
--
2.53.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-03-10 15:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-10 12:36 [PATCH] Revert "nfsrahead: enable event-driven mountinfo monitoring and skip non-NFS devices" Steve Dickson
2026-03-10 13:28 ` Aaron Tomlin
2026-03-10 15:53 ` Steve Dickson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox