]> sourceware.org Git - glibc.git/commit
linux: Consolidate fstatfs implementations
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 5 Feb 2021 20:13:58 +0000 (20:13 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 11 Feb 2021 10:58:31 +0000 (07:58 -0300)
commit1bfbaf7130133ae740c09e12dfdd87df26e03d39
tree6ce35b86fe247629bf6bb2dcdf4413fbaaf5d0a6
parente7702cb56ec99521124befba3c52903842a885c1
linux: Consolidate fstatfs implementations

The __NR_fstatfs64 syscall is supported on all architectures but
aarch64, mips64, riscv64, and x86_64.  And newer ABIs also uses
the new fstatfs64 interface (where the struct size is used as
first argument).

So the default implementation now uses:

  1. __NR_fstatfs64 for non-LFS call and handle overflow directly
     There is no need to handle __NR_fstatfs since all architectures
     that only support are LFS only.

  2. __NR_fstatfs if defined or __NR_fstatfs64 otherwise for LFS
     call.

Alpha is the only outlier, it is a 64-bit architecture which
provides non-LFS interface and only provides __NR_fstatfs64 on
newer kernels (5.1+).

Checked on x86_64-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
include/sys/statfs.h
sysdeps/unix/sysv/linux/alpha/fstatfs.c [moved from sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c with 76% similarity]
sysdeps/unix/sysv/linux/alpha/fstatfs64.c
sysdeps/unix/sysv/linux/alpha/syscalls.list
sysdeps/unix/sysv/linux/fstatfs.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/fstatfs64.c
sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c [deleted file]
sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c [deleted file]
sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
This page took 0.046738 seconds and 5 git commands to generate.