diff options
Diffstat (limited to 'src/stat')
| -rw-r--r-- | src/stat/fchmodat.c | 7 | ||||
| -rw-r--r-- | src/stat/fstatat.c | 1 | ||||
| -rw-r--r-- | src/stat/statvfs.c | 1 | 
3 files changed, 7 insertions, 2 deletions
diff --git a/src/stat/fchmodat.c b/src/stat/fchmodat.c index bc581050..92c9d1b0 100644 --- a/src/stat/fchmodat.c +++ b/src/stat/fchmodat.c @@ -5,13 +5,16 @@  int fchmodat(int fd, const char *path, mode_t mode, int flag)  { -	if (!flag) return syscall(SYS_fchmodat, fd, path, mode, flag); +	if (!flag) return syscall(SYS_fchmodat, fd, path, mode); + +	int ret = __syscall(SYS_fchmodat2, fd, path, mode, flag); +	if (ret != -ENOSYS) return __syscall_ret(ret);  	if (flag != AT_SYMLINK_NOFOLLOW)  		return __syscall_ret(-EINVAL);  	struct stat st; -	int ret, fd2; +	int fd2;  	char proc[15+3*sizeof(int)];  	if (fstatat(fd, path, &st, flag)) diff --git a/src/stat/fstatat.c b/src/stat/fstatat.c index 04506375..9eed063b 100644 --- a/src/stat/fstatat.c +++ b/src/stat/fstatat.c @@ -36,6 +36,7 @@ static int fstatat_statx(int fd, const char *restrict path, struct stat *restric  {  	struct statx stx; +	flag |= AT_NO_AUTOMOUNT;  	int ret = __syscall(SYS_statx, fd, path, flag, 0x7ff, &stx);  	if (ret) return ret; diff --git a/src/stat/statvfs.c b/src/stat/statvfs.c index bfbb5fee..bc12da8b 100644 --- a/src/stat/statvfs.c +++ b/src/stat/statvfs.c @@ -39,6 +39,7 @@ static void fixup(struct statvfs *out, const struct statfs *in)  	out->f_fsid = in->f_fsid.__val[0];  	out->f_flag = in->f_flags;  	out->f_namemax = in->f_namelen; +	out->f_type = in->f_type;  }  int statvfs(const char *restrict path, struct statvfs *restrict buf)  | 
