Add support for the syncfs system call.

Based on patch from j@eckel.me on BZ#347389.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15191
This commit is contained in:
Tom Hughes 2015-05-07 18:54:31 +00:00
parent f61b92edba
commit 2799d8f88a
11 changed files with 20 additions and 6 deletions

View File

@ -287,6 +287,8 @@ DECL_TEMPLATE(linux, sys_fanotify_mark);
DECL_TEMPLATE(linux, sys_getrandom);
DECL_TEMPLATE(linux, sys_memfd_create);
DECL_TEMPLATE(linux, sys_syncfs);
/* ---------------------------------------------------------------------
Wrappers for sockets and ipc-ery. These are split into standalone
procedures because x86-linux hides them inside multiplexors

View File

@ -1062,7 +1062,7 @@ static SyscallTableEntry syscall_table[] = {
LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 304
LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 305
// LINX_(__NR_syncfs, sys_ni_syscall), // 306
LINX_(__NR_syncfs, sys_syncfs), // 306
LINXY(__NR_sendmmsg, sys_sendmmsg), // 307
// LINX_(__NR_setns, sys_ni_syscall), // 308
LINXY(__NR_getcpu, sys_getcpu), // 309

View File

@ -1212,6 +1212,7 @@ static SyscallTableEntry syscall_main_table[] = {
LINXY(__NR_name_to_handle_at, sys_name_to_handle_at),// 370
LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 371
LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 372
LINX_(__NR_syncfs, sys_syncfs), // 373
LINXY(__NR_sendmmsg, sys_sendmmsg), // 374
LINXY(__NR_getrandom, sys_getrandom), // 384
LINXY(__NR_memfd_create, sys_memfd_create) // 385

View File

@ -1042,6 +1042,8 @@ static SyscallTableEntry syscall_main_table[] = {
GENXY(__NR_wait4, sys_wait4), // 260
LINX_(__NR_syncfs, sys_syncfs), // 267
LINXY(__NR_sendmmsg, sys_sendmmsg), // 269
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 270
LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 271

View File

@ -3064,6 +3064,13 @@ POST(sys_memfd_create)
}
}
PRE(sys_syncfs)
{
*flags |= SfMayBlock;
PRINT("sys_syncfs ( %ld )", ARG1);
PRE_REG_READ1(long, "syncfs", unsigned int, fd);
}
/* ---------------------------------------------------------------------
utime wrapper
------------------------------------------------------------------ */

View File

@ -1112,6 +1112,7 @@ static SyscallTableEntry syscall_main_table[] = {
LINXY (__NR_prlimit64, sys_prlimit64), // 338
//..
LINXY (__NR_clock_adjtime, sys_clock_adjtime), // 341
LINX_ (__NR_syncfs, sys_syncfs), // 342
//..
LINXY (__NR_process_vm_readv, sys_process_vm_readv), // 345
LINX_ (__NR_process_vm_writev, sys_process_vm_writev), // 346

View File

@ -909,7 +909,8 @@ static SyscallTableEntry syscall_main_table[] = {
LINXY (__NR_process_vm_readv, sys_process_vm_readv),
LINX_ (__NR_process_vm_writev, sys_process_vm_writev),
LINXY(__NR_getrandom, sys_getrandom),
LINXY(__NR_memfd_create, sys_memfd_create)
LINXY(__NR_memfd_create, sys_memfd_create),
LINX_(__NR_syncfs, sys_syncfs)
};
SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )

View File

@ -1253,7 +1253,7 @@ static SyscallTableEntry syscall_table[] = {
LINXY(__NR_accept4, sys_accept4), // 344
LINX_(__NR_clock_adjtime, sys_clock_adjtime), // 347
LINX_(__NR_syncfs, sys_syncfs), // 348
LINXY(__NR_sendmmsg, sys_sendmmsg), // 349
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351

View File

@ -1155,7 +1155,7 @@ static SyscallTableEntry syscall_table[] = {
LINXY(__NR_accept4, sys_accept4), // 344
LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 347
LINX_(__NR_syncfs, sys_syncfs), // 348
LINXY(__NR_sendmmsg, sys_sendmmsg), // 349
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351

View File

@ -1035,7 +1035,7 @@ static SyscallTableEntry syscall_table[] = {
LINXY(__NR_name_to_handle_at, sys_name_to_handle_at), // 335
LINXY(__NR_open_by_handle_at, sys_open_by_handle_at), // 336
LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 337
// ?????(__NR_syncfs, ), // 338
LINX_(__NR_syncfs, sys_syncfs), // 338
// ?????(__NR_setns, ), // 339
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 340

View File

@ -1805,7 +1805,7 @@ static SyscallTableEntry syscall_table[] = {
LINXY(__NR_name_to_handle_at, sys_name_to_handle_at),// 341
LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 342
LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 343
// LINX_(__NR_syncfs, sys_ni_syscall), // 344
LINX_(__NR_syncfs, sys_syncfs), // 344
LINXY(__NR_sendmmsg, sys_sendmmsg), // 345
// LINX_(__NR_setns, sys_ni_syscall), // 346