Jitendra Bhati
dd532ad133
fts: reduce fd usage by storing fts_dirfd on directory entries only
...
Previously fts_build() called _dup(_dirfd(dirp)) for every child
entry, holding N simultaneous fds for a directory with N children.
Redefine fts_dirfd: instead of a fd for the entry's parent
directory, it is now a fd for the entry itself, set only for
directory entries. One dup per directory in fts_build() instead
of one per child. Close fts_dirfd during the directory post-order
visit, before advancing to its sibling.
To access a file using fd-relative operations, callers should use
openat(ent->fts_parent->fts_dirfd, ent->fts_name, ...) instead of
openat(ent->fts_dirfd, ent->fts_name, ...). The fd is valid until the
directory's post-order visit (FTS_DP).
Reported by: Mark Johnston <[email protected] >
Fixes: 4bd01d6ae0 (fts: refactor to use fd-relative operations)
Sponsored by: Google LLC (GSoC 2026)
Reviewed by: asomers
Pull Request: https://github.com/freebsd/freebsd-src/pull/2360
2026-08-10 10:14:16 -06:00
..
2025-12-10 10:57:50 +00:00
2024-07-15 16:43:39 -06:00
2024-07-15 16:43:39 -06:00
2022-06-13 21:37:34 +01:00
2024-07-15 16:43:39 -06:00
2026-02-02 21:20:16 +00:00
2026-05-30 15:43:51 +02:00
2026-04-30 21:58:48 -05:00
2024-07-15 16:43:39 -06:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:28 -07:00
2026-06-10 18:14:32 +02:00
2023-08-16 11:54:16 -06:00
2023-01-20 16:37:39 -07:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:28 -07:00
2025-09-11 17:12:22 +02:00
2025-06-11 17:39:01 +01:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2024-12-30 13:38:39 -07:00
2023-11-26 22:23:28 -07:00
2026-02-18 09:54:01 +02:00
2023-08-16 11:54:16 -06:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:28 -07:00
2026-08-10 10:14:16 -06:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:29 -06:00
2025-06-03 22:59:28 +02:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:29 -06:00
2023-08-16 11:54:29 -06:00
2026-06-22 15:23:48 +02:00
2023-08-16 11:54:29 -06:00
2023-08-16 11:54:29 -06:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:29 -06:00
2025-06-11 17:16:20 -06:00
2023-08-16 11:54:16 -06:00
2023-11-26 22:23:28 -07:00
2026-07-29 12:12:41 -07:00
2024-10-14 10:26:17 -07:00
2023-09-12 13:22:21 +01:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:23 -06:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:55:03 -06:00
2023-08-16 11:54:16 -06:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:59 -07:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:29 -06:00
2023-11-26 22:23:28 -07:00
2024-01-24 22:50:49 -05:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:29 -06:00
2024-08-26 18:27:29 +02:00
2026-05-27 00:05:45 +01:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2026-01-19 18:49:57 +02:00
2026-07-27 19:17:28 +03:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:29 -06:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:23 -06:00
2026-07-06 14:23:50 +02:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:59 -07:00
2025-12-29 19:18:55 +02:00
2023-08-16 11:54:16 -06:00
2023-11-26 22:23:28 -07:00
2025-06-11 17:16:22 -06:00
2026-04-03 11:22:53 +03:00
2023-11-26 22:23:28 -07:00
2026-06-10 18:14:32 +02:00
2026-04-20 22:59:54 +02:00
2026-01-06 20:26:59 -05:00
2025-10-18 00:48:30 +03:00
2026-02-19 15:10:32 +00:00
2026-03-06 01:46:53 +02:00
2026-08-02 14:10:02 +02:00
2023-08-16 11:54:16 -06:00
2025-12-09 00:34:57 +02:00
2023-11-26 22:23:59 -07:00
2024-07-13 00:16:24 -05:00
2024-05-09 20:50:48 -06:00
2023-11-26 22:23:28 -07:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:16 -06:00
2025-11-28 16:19:40 +01:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:16 -06:00
2023-11-26 22:23:28 -07:00
2025-11-28 16:19:53 +01:00
2023-08-16 11:54:16 -06:00
2026-05-10 17:53:20 +03:00
2023-11-26 22:23:28 -07:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2023-08-16 11:54:16 -06:00
2025-06-11 17:39:02 +01:00
2023-08-16 11:54:23 -06:00
2023-08-16 11:54:16 -06:00
2024-07-30 12:16:36 -04:00