diff options
author | Wayne Davison <wayne@opencoder.net> | 2021-09-27 10:30:00 -0700 |
---|---|---|
committer | Wayne Davison <wayne@opencoder.net> | 2021-09-27 10:30:00 -0700 |
commit | 82f023d7e3cca126d264ebb81b19feaf8731ad9a (patch) | |
tree | 82316449c2e1e816f9ff3a1181f60ef1c524c751 /receiver.c | |
parent | ec57c57baf848718bbab93fa0c597d15718acc5a (diff) | |
download | rsync-82f023d7e3cca126d264ebb81b19feaf8731ad9a.tar.gz |
Add --fsync option (promoted from patches).
Diffstat (limited to 'receiver.c')
-rw-r--r-- | receiver.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -41,6 +41,7 @@ extern int preserve_hard_links; extern int preserve_perms; extern int write_devices; extern int preserve_xattrs; +extern int do_fsync; extern int basis_dir_cnt; extern int make_backups; extern int cleanup_got_literal; @@ -394,6 +395,11 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, sum_len = sum_end(file_sum1); + if (do_fsync && fd != -1 && fsync(fd) != 0) { + rsyserr(FERROR, errno, "fsync failed on %s", full_fname(fname)); + exit_cleanup(RERR_FILEIO); + } + if (mapbuf) unmap_file(mapbuf); |