503914 mount syscall param filesystemtype may be NULL
504101 Add a "vgstack" script
504177 FILE DESCRIPTORS banner shows when closing some inherited fds
+501741 syscall cachestat not wrapped
To see details of a given bug, visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
DECL_TEMPLATE(linux, sys_vmsplice);
DECL_TEMPLATE(linux, sys_readahead);
DECL_TEMPLATE(linux, sys_move_pages);
+DECL_TEMPLATE(linux, sys_cachestat);
// clone is similar enough between linux variants to have a generic
// version, but which will call an extern defined in syswrap-<platform>-linux.c
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
+ LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
};
LINX_(__NR_landlock_add_rule, sys_landlock_add_rule), // 445
LINX_(__NR_landlock_restrict_self, sys_landlock_restrict_self), // 446
+ LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
};
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
+ LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
};
PRE_MEM_RASCIIZ( "fchmodat(path)", ARG2 );
}
+PRE(sys_cachestat)
+{
+ PRINT("sys_cachestat ( %lu, %#lx, %#lx, %lu )", ARG1, ARG2, ARG3, ARG4);
+ PRE_REG_READ4(long, "cachestat",
+ unsigned long, fd, struct vki_cachestat_range *, cstat_range,
+ struct vki_cachestat*, cstat, unsigned long, flags);
+ if (!ML_(fd_allowed)(ARG1, "cachestat", tid, False))
+ SET_STATUS_Failure( VKI_EBADF );
+ const struct vki_cachestat_range *cstat_range = (struct vki_cachestat_range *)(Addr)ARG2;
+ PRE_MEM_READ("cachestat(cstat_range)", ARG2, sizeof(*cstat_range) );
+ const struct vki_cachestat *cstat = (struct vki_cachestat *)(Addr)ARG3;
+ PRE_MEM_WRITE("cachestat(cstat)", ARG3, sizeof(*cstat) );
+}
+
+POST(sys_cachestat)
+{
+ vg_assert(SUCCESS);
+ POST_MEM_WRITE(ARG3, sizeof(struct vki_cachestat));
+}
+
PRE(sys_fchmodat2)
{
FUSE_COMPATIBLE_MAY_BLOCK();
LINX_(__NR_landlock_add_rule, sys_landlock_add_rule), // 445
LINX_(__NR_landlock_restrict_self, sys_landlock_restrict_self), // 446
+ LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
};
LINXY (__NR_landlock_create_ruleset, sys_landlock_create_ruleset),
LINX_ (__NR_landlock_add_rule, sys_landlock_add_rule),
LINX_ (__NR_landlock_restrict_self, sys_landlock_restrict_self),
+ LINXY (__NR_cachestat, sys_cachestat),
LINX_ (__NR_fchmodat2, sys_fchmodat2),
LINXY (__NR_userfaultfd, sys_userfaultfd),
};
LINXY (__NR_landlock_create_ruleset,sys_landlock_create_ruleset),
LINX_ (__NR_landlock_add_rule, sys_landlock_add_rule),
LINX_ (__NR_landlock_restrict_self, sys_landlock_restrict_self),
+ LINXY (__NR_cachestat, sys_cachestat),
LINX_ (__NR_fchmodat2, sys_fchmodat2),
};
LINX_(__NR_landlock_add_rule, sys_landlock_add_rule), // 445
LINX_(__NR_landlock_restrict_self, sys_landlock_restrict_self), // 446
+ LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
};
LINX_(__NR_landlock_add_rule, sys_landlock_add_rule), // 445
LINX_(__NR_landlock_restrict_self, sys_landlock_restrict_self), // 446
+ LINXY (__NR_cachestat, sys_cachestat), // 451
LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
};
LINX_(__NR_landlock_add_rule, sys_landlock_add_rule), /* 445 */
LINX_(__NR_landlock_restrict_self, sys_landlock_restrict_self), /* 446 */
LINXY(__NR_memfd_secret, sys_memfd_secret), /* 447 */
+ LINXY(__NR_cachestat, sys_cachestat), /* 451 */
LINX_(__NR_fchmodat2, sys_fchmodat2), /* 452 */
};
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
+ LINXY (__NR_cachestat, sys_cachestat), // 451
LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
};
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
+ LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
};
#define VKI_CLOSE_RANGE_UNSHARE (1U << 1)
#define VKI_CLOSE_RANGE_CLOEXEC (1U << 2)
+struct vki_cachestat_range {
+ __vki_u64 off;
+ __vki_u64 len;
+};
+
+struct vki_cachestat {
+ __vki_u64 nr_cache;
+ __vki_u64 nr_dirty;
+ __vki_u64 nr_writeback;
+ __vki_u64 nr_evicted;
+ __vki_u64 nr_recently_evicted;
+};
+
//----------------------------------------------------------------------
// From linux/magic.h
//----------------------------------------------------------------------
#define __NR_memfd_secret 447
+#define __NR_cachestat 451
#define __NR_fchmodat2 452
#endif