1*cf5a6c84SAndroid Build Coastguard Worker /* fsync.c - Synchronize a file's in-core state with storage device. 2*cf5a6c84SAndroid Build Coastguard Worker * 3*cf5a6c84SAndroid Build Coastguard Worker * Copyright 2015 Ranjan Kumar <[email protected]> 4*cf5a6c84SAndroid Build Coastguard Worker * 5*cf5a6c84SAndroid Build Coastguard Worker * No Standard. 6*cf5a6c84SAndroid Build Coastguard Worker 7*cf5a6c84SAndroid Build Coastguard Worker USE_FSYNC(NEWTOY(fsync, "<1d", TOYFLAG_BIN)) 8*cf5a6c84SAndroid Build Coastguard Worker 9*cf5a6c84SAndroid Build Coastguard Worker config FSYNC 10*cf5a6c84SAndroid Build Coastguard Worker bool "fsync" 11*cf5a6c84SAndroid Build Coastguard Worker default y 12*cf5a6c84SAndroid Build Coastguard Worker help 13*cf5a6c84SAndroid Build Coastguard Worker usage: fsync [-d] [FILE...] 14*cf5a6c84SAndroid Build Coastguard Worker 15*cf5a6c84SAndroid Build Coastguard Worker Flush disk cache for FILE(s), writing cached data to storage device. 16*cf5a6c84SAndroid Build Coastguard Worker 17*cf5a6c84SAndroid Build Coastguard Worker -d Skip directory info (sync file contents only). 18*cf5a6c84SAndroid Build Coastguard Worker */ 19*cf5a6c84SAndroid Build Coastguard Worker 20*cf5a6c84SAndroid Build Coastguard Worker #define FOR_fsync 21*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h" 22*cf5a6c84SAndroid Build Coastguard Worker do_fsync(int fd,char * name)23*cf5a6c84SAndroid Build Coastguard Workerstatic void do_fsync(int fd, char *name) 24*cf5a6c84SAndroid Build Coastguard Worker { 25*cf5a6c84SAndroid Build Coastguard Worker if (FLAG(d) ? fdatasync(fd) : fsync(fd)) perror_msg("can't sync '%s'", name); 26*cf5a6c84SAndroid Build Coastguard Worker } 27*cf5a6c84SAndroid Build Coastguard Worker fsync_main(void)28*cf5a6c84SAndroid Build Coastguard Workervoid fsync_main(void) 29*cf5a6c84SAndroid Build Coastguard Worker { 30*cf5a6c84SAndroid Build Coastguard Worker loopfiles_rw(toys.optargs, O_RDONLY|O_NOATIME|O_NOCTTY|O_CLOEXEC|WARN_ONLY, 31*cf5a6c84SAndroid Build Coastguard Worker 0, do_fsync); 32*cf5a6c84SAndroid Build Coastguard Worker } 33