linux/tools/perf
Linus Torvalds 5d15ab717d vfs-7.2-rc1.casefold
Please consider pulling these changes from the signed vfs-7.2-rc1.casefold tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCaiwLKgAKCRCRxhvAZXjc
 omRSAP4valdmpvuSFbc84F6nn0LjDhTR+zg3uX2iGF6sWaQLjAEAyAhuDH23SQyz
 SSj2KCh/G2c/IXCVM5j0zn7fZxeKBA4=
 =GA7C
 -----END PGP SIGNATURE-----

Merge tag 'vfs-7.2-rc1.casefold' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs casefolding updates from Christian Brauner:
 "This exposes the case folding behavior of local filesystems so that
  file servers - nfsd, ksmbd, and user space file servers - can report
  the actual behavior to clients instead of guessing.

  Filesystems report case-insensitive and case-nonpreserving behavior
  via new file_kattr flags in their fileattr_get implementations. fat,
  exfat, ntfs3, hfs, hfsplus, xfs, cifs, nfs, vboxsf, and isofs are
  wired up. Local filesystems that are not explicitly handled default to
  the usual POSIX behavior of case-sensitive and case-preserving.

  nfsd uses this to report case folding via NFSv3 PATHCONF and to
  implement the NFSv4 FATTR4_CASE_INSENSITIVE and FATTR4_CASE_PRESERVING
  attributes - both have been part of the NFS protocols for decades to
  support clients on non-POSIX systems - and ksmbd reports it via
  FS_ATTRIBUTE_INFORMATION. Exposing the information through the
  fileattr uapi covers user space file servers.

  The immediate motivation is interoperability: Windows NFS clients
  hard-require servers to report case-insensitivity for Win32
  applications to work correctly, and a client that knows the server is
  case-insensitive can avoid issuing multiple LOOKUP/READDIR requests
  searching for case variants.

  The Linux NFS client already grew support for case-insensitive shares
  years ago in support of the Hammerspace NFS server - negative dentry
  caching must be disabled (a lookup for "FILE.TXT" failing must not
  cache a negative entry when "file.txt" exists) and directory change
  invalidation must drop cached case-folded name variants. Such servers
  often operate in multi-protocol environments where a single file
  service instance caters to both NFS and SMB clients, and nfsd needs to
  report case folding properly to participate as a first-class citizen
  there.

  A follow-up series brings fixes for the initial work: the nfsd
  case-info probe now uses kernel credentials, maps -ESTALE to
  NFS3ERR_STALE, and has its cost capped across READDIR entries; the nfs
  client avoids transiently zeroed case capability bits during the probe
  and skips the pathconf probe when neither field is consumed; the
  FS_CASEFOLD_FL semantics are clarified in the UAPI header; and the
  tools UAPI headers are synced"

* tag 'vfs-7.2-rc1.casefold' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (22 commits)
  nfsd: Cap case-folding probe cost across READDIR entries
  nfsd: Map -ESTALE from case probe to NFS3ERR_STALE
  nfsd: Use kernel credentials for case-info probe
  fs: Clarify FS_CASEFOLD_FL semantics in UAPI header
  nfs: Skip pathconf probe when neither field is consumed
  nfs: Avoid transient zeroed case capability bits during probe
  tools headers UAPI: Sync case-sensitivity flags from linux/fs.h
  ksmbd: Report filesystem case sensitivity via FS_ATTRIBUTE_INFORMATION
  nfsd: Implement NFSv4 FATTR4_CASE_INSENSITIVE and FATTR4_CASE_PRESERVING
  nfsd: Report export case-folding via NFSv3 PATHCONF
  isofs: Implement fileattr_get for case sensitivity
  vboxsf: Implement fileattr_get for case sensitivity
  nfs: Implement fileattr_get for case sensitivity
  cifs: Implement fileattr_get for case sensitivity
  xfs: Report case sensitivity in fileattr_get
  hfsplus: Report case sensitivity in fileattr_get
  hfs: Implement fileattr_get for case sensitivity
  ntfs3: Implement fileattr_get for case sensitivity
  exfat: Implement fileattr_get for case sensitivity
  fat: Implement fileattr_get for case sensitivity
  ...
History 2026-06-15 02:55:34 +05:30
..
arch perf loongarch: Fix build failure with CONFIG_LIBDW_DWARF_UNWIND 2026-04-14 00:36:53 -07:00
bench perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
check-header_ignore_hunks/lib perf tools: update expected diff for lib/list_sort.c 2024-11-05 17:12:33 -08:00
dlfilters perf tools: Simplify evsel__add_modifier() 2024-10-22 09:52:11 -07:00
Documentation perf report: Update document for SIMD flags 2026-04-10 09:52:06 -07:00
include/perf perf dso: Move build_id to dso_id 2025-07-25 10:37:56 -07:00
jvmti perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
pmu-events perf build: fix "argument list too long" in second location 2026-04-13 23:22:16 -07:00
python perf ilist: Be tolerant of reading a metric on the wrong CPU 2025-12-02 16:12:49 -08:00
scripts perf script: Fix script_fetch_insn for more than just x86 2026-01-27 01:35:22 -03:00
tests perf test: Fixes for check branch stack sampling 2026-04-13 23:37:59 -07:00
trace vfs-7.2-rc1.casefold 2026-06-15 02:55:34 +05:30
ui perf disasm: Refactor arch__find and initialization of arch structs 2026-01-23 16:58:39 -03:00
util perf annotate: Use jump__delete when freeing LoongArch jumps 2026-04-13 23:41:11 -07:00
.gitignore perf jevents: Build support for generating metrics from python 2026-01-28 15:18:44 -03:00
Build perf build: Specify shellcheck should use bash 2025-06-30 09:43:06 -07:00
builtin-annotate.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-bench.c perf bench: Constify tables 2026-04-08 19:21:05 -07:00
builtin-buildid-cache.c perf symbol: Fix ENOENT case for filename__read_build_id 2025-12-17 07:30:51 -08:00
builtin-buildid-list.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
builtin-c2c.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-check.c perf check: Add libbabeltrace to the listed features 2026-02-12 17:45:22 -03:00
builtin-config.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
builtin-daemon.c perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
builtin-data.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
builtin-diff.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-evlist.c perf tool: Add the perf_tool argument to all callbacks 2025-11-07 13:25:05 -08:00
builtin-ftrace.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-help.c perf help: Move common_cmds into builtin-help 2026-01-14 17:22:50 -03:00
builtin-inject.c perf data: Clean up use_stdio and structures 2026-04-08 19:21:17 -07:00
builtin-kallsyms.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
builtin-kmem.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
builtin-kvm.c perf session: Add e_flags to the e_machine helper 2026-02-03 18:01:27 -03:00
builtin-kwork.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-list.c Merge remote-tracking branch 'torvalds/master' into perf-tools-next 2026-01-26 17:03:53 -03:00
builtin-lock.c perf lock: Fix option value type in parse_max_stack 2026-03-26 15:02:42 -07:00
builtin-mem.c perf auxtrace: Remove errno.h from auxtrace.h and fix transitive dependencies 2025-11-13 23:03:11 -08:00
builtin-probe.c perf tools: Add layout support for --symfs option 2026-03-10 23:13:30 -07:00
builtin-record.c perf data: Clean up use_stdio and structures 2026-04-08 19:21:17 -07:00
builtin-report.c perf header: Refactor pipe mode end marker handling 2026-04-02 19:35:16 -07:00
builtin-sched.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-script.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-stat.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
builtin-timechart.c perf tools: Add layout support for --symfs option 2026-03-10 23:13:30 -07:00
builtin-top.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
builtin-trace.c perf trace: Add beautifier script for fsmount flags 2026-05-14 14:48:32 -07:00
builtin-version.c perf check: Share the feature status printing routine with 'perf version' 2025-04-10 10:44:04 -03:00
builtin.h perf check: Allow showing a tip for opt-in features not built into perf 2025-04-10 10:44:42 -03:00
check-headers.sh perf beauty: Move copy of fadvise.h from tools/include/ to tools/perf/trace/beauty/include/ 2026-03-31 20:23:06 -07:00
CREDITS perf_counter tools: Add CREDITS file for Git contributors 2009-06-24 19:54:29 +02:00
design.txt perf design.txt: Synchronize the definition of enum perf_hw_id with code 2021-11-13 18:11:50 -03:00
Makefile perf build: Add make check-headers target 2026-05-14 14:48:32 -07:00
Makefile.config perf build: Add -funsigned-char to default CFLAGS 2026-03-31 20:22:02 -07:00
Makefile.perf perf trace: Add beautifier script for fsmount flags 2026-05-14 14:48:32 -07:00
MANIFEST perf tools: Fix arm64 source package build 2025-05-13 17:26:35 -03:00
perf-archive.sh tools/perf: Add --exclude-buildids option to perf archive command 2025-06-26 15:40:19 -07:00
perf-completion.sh perf build: Add shellcheck to tools/perf scripts 2024-04-12 17:54:02 -03:00
perf-iostat.sh perf stat: Enable iostat mode for x86 platforms 2021-04-20 08:40:20 -03:00
perf-read-vdso.c perf tools: Make find_vdso_map() more modular 2019-01-08 13:28:13 -03:00
perf-sys.h perf tests: Call test_attr__open() directly 2020-09-10 11:55:37 -03:00
perf.c perf tool: Constify the command and option arrays 2026-03-13 14:26:27 -07:00
perf.h perf: Completely remove possibility to override MAX_NR_CPUS 2025-09-12 10:52:22 -03:00