Implement decoding of fallocate FALLOC_FL_* flags
* xlat/falloc_flags.in: New file. * configure.ac (AC_CHECK_HEADERS): Add linux/falloc.h. * fallocate.c [HAVE_LINUX_FALLOC_H]: Include <linux/falloc.h>. Include xlat/falloc_flags.h. (sys_fallocate): Decode flags.
This commit is contained in:
parent
19b50da101
commit
52572b6fdd
@ -232,6 +232,7 @@ AC_CHECK_HEADERS(m4_normalize([
|
||||
elf.h
|
||||
inttypes.h
|
||||
ioctls.h
|
||||
linux/falloc.h
|
||||
linux/perf_event.h
|
||||
linux/ptrace.h
|
||||
linux/utsname.h
|
||||
|
24
fallocate.c
24
fallocate.c
@ -1,14 +1,30 @@
|
||||
#include "defs.h"
|
||||
|
||||
#ifdef HAVE_LINUX_FALLOC_H
|
||||
# include <linux/falloc.h>
|
||||
#endif
|
||||
|
||||
#include "xlat/falloc_flags.h"
|
||||
|
||||
int
|
||||
sys_fallocate(struct tcb *tcp)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
int argn;
|
||||
printfd(tcp, tcp->u_arg[0]); /* fd */
|
||||
tprintf(", %#lo, ", tcp->u_arg[1]); /* mode */
|
||||
argn = printllval(tcp, "%llu, ", 2); /* offset */
|
||||
printllval(tcp, "%llu", argn); /* len */
|
||||
|
||||
/* fd */
|
||||
printfd(tcp, tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
|
||||
/* mode */
|
||||
printflags(falloc_flags, tcp->u_arg[1], "FALLOC_FL_???");
|
||||
tprints(", ");
|
||||
|
||||
/* offset */
|
||||
argn = printllval(tcp, "%llu, ", 2);
|
||||
|
||||
/* len */
|
||||
printllval(tcp, "%llu", argn);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
5
xlat/falloc_flags.in
Normal file
5
xlat/falloc_flags.in
Normal file
@ -0,0 +1,5 @@
|
||||
FALLOC_FL_KEEP_SIZE
|
||||
FALLOC_FL_PUNCH_HOLE
|
||||
FALLOC_FL_NO_HIDE_STALE
|
||||
FALLOC_FL_COLLAPSE_RANGE
|
||||
FALLOC_FL_ZERO_RANGE
|
Loading…
x
Reference in New Issue
Block a user