Przeglądaj źródła

statx: fix ENOSYS emulation not setting stx_rdev_*

The current implementation of the statx function fails to set the
values of stx->stx_rdev_major and stx->stx_rdev_minor if the statx
syscall fails with ENOSYS and thus the statx function has to fall back
on fstatat-based emulation.
Gabriel Ravier 2 miesięcy temu
rodzic
commit
251cbb6366
1 zmienionych plików z 2 dodań i 0 usunięć
  1. 2 0
      src/linux/statx.c

+ 2 - 0
src/linux/statx.c

@@ -21,6 +21,8 @@ int statx(int dirfd, const char *restrict path, int flags, unsigned mask, struct
 
 	stx->stx_dev_major = major(st.st_dev);
 	stx->stx_dev_minor = minor(st.st_dev);
+	stx->stx_rdev_major = major(st.st_rdev);
+	stx->stx_rdev_minor = minor(st.st_rdev);
 	stx->stx_ino = st.st_ino;
 	stx->stx_mode = st.st_mode;
 	stx->stx_nlink = st.st_nlink;