X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/5795bf59eae77f5d56b33a883708280b458f9fca..8e65e95897d45f2f9912349580c977c6e0a5cfc7:/fsync.diff diff --git a/fsync.diff b/fsync.diff index f1326f0..0424fde 100644 --- a/fsync.diff +++ b/fsync.diff @@ -17,7 +17,7 @@ To use this patch, run these commands for a successful build: int preserve_links = 0; int preserve_hard_links = 0; int preserve_acls = 0; -@@ -352,6 +353,7 @@ void usage(enum logcode F) +@@ -367,6 +368,7 @@ void usage(enum logcode F) rprintf(F," --partial-dir=DIR put a partially transferred file into DIR\n"); rprintf(F," --delay-updates put all updated files into place at transfer's end\n"); rprintf(F," -m, --prune-empty-dirs prune empty directory chains from the file-list\n"); @@ -25,24 +25,24 @@ To use this patch, run these commands for a successful build: rprintf(F," --numeric-ids don't map uid/gid values by user/group name\n"); rprintf(F," --timeout=TIME set I/O timeout in seconds\n"); rprintf(F," -I, --ignore-times don't skip files that match in size and mod-time\n"); -@@ -549,6 +551,7 @@ static struct poptOption long_options[] - {"only-write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_ONLY_WRITE_BATCH, 0, 0 }, +@@ -580,6 +582,7 @@ static struct poptOption long_options[] {"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 }, - {"from0", '0', POPT_ARG_NONE, &eol_nulls, 0, 0, 0}, + {"from0", '0', POPT_ARG_VAL, &eol_nulls, 1, 0, 0}, + {"no-from0", 0, POPT_ARG_VAL, &eol_nulls, 0, 0, 0}, + {"fsync", 0, POPT_ARG_NONE, &do_fsync, 0, 0, 0 }, - {"numeric-ids", 0, POPT_ARG_NONE, &numeric_ids, 0, 0, 0 }, + {"numeric-ids", 0, POPT_ARG_VAL, &numeric_ids, 1, 0, 0 }, + {"no-numeric-ids", 0, POPT_ARG_VAL, &numeric_ids, 0, 0, 0 }, {"timeout", 0, POPT_ARG_INT, &io_timeout, 0, 0, 0 }, - {"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 }, -@@ -1802,6 +1805,9 @@ void server_options(char **args,int *arg - args[ac++] = tmpdir; - } +@@ -1885,6 +1888,9 @@ void server_options(char **args,int *arg + args[ac++] = tmpdir; + } -+ if (do_fsync && am_sender) -+ args[ac++] = "--fsync"; ++ if (do_fsync) ++ args[ac++] = "--fsync"; + - if (basis_dir[0] && am_sender) { - /* the server only needs this option if it is not the sender, - * and it may be an older version that doesn't know this + if (basis_dir[0]) { + /* the server only needs this option if it is not the sender, + * and it may be an older version that doesn't know this --- old/receiver.c +++ new/receiver.c @@ -39,6 +39,7 @@ extern int relative_paths;