diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/pathconf.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/pathconf.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c index de91a45..723d234 100644 --- a/sysdeps/unix/sysv/linux/pathconf.c +++ b/sysdeps/unix/sysv/linux/pathconf.c @@ -289,11 +289,16 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf) return -1; } +#if __ASSUME_XFS_RESTRICTED_CHOWN + return 1; +#else int fd; + int save_errno; long int retval = 1; switch (fsbuf->f_type) { case XFS_SUPER_MAGIC: + save_errno = errno; /* Read the value from /proc/sys/fs/xfs/restrict_chown. If we cannot read it default to assume the restriction is in place. */ fd = open_not_cancel_2 ("/proc/sys/fs/xfs/restrict_chown", O_RDONLY); @@ -306,6 +311,7 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf) close_not_cancel_no_status (fd); } + __set_errno (save_errno); break; default: @@ -313,4 +319,5 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf) } return retval; +#endif } |