Updated patches to work with the current trunk.
[rsync/rsync-patches.git] / sparse-block.diff
index ba5da97..5dbbe34 100644 (file)
@@ -18,23 +18,24 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
+based-on: 24079e988fc31af4eba56cd2701fdc5a4154980d
 diff --git a/fileio.c b/fileio.c
 --- a/fileio.c
 +++ b/fileio.c
-@@ -26,6 +26,7 @@
+@@ -27,6 +27,7 @@
  #endif
  
  extern int sparse_files;
-+extern long sparse_files_block_size;
++extern int sparse_files_block_size;
  
  static char last_byte;
- static size_t sparse_seek = 0;
-@@ -115,7 +116,7 @@ int write_file(int f,char *buf,size_t len)
+ static OFF_T sparse_seek = 0;
+@@ -116,7 +117,7 @@ int write_file(int f, char *buf, int len)
        while (len > 0) {
                int r1;
                if (sparse_files > 0) {
 -                      int len1 = MIN(len, SPARSE_WRITE_SIZE);
-+                      int len1 = MIN(len, (size_t)sparse_files_block_size);
++                      int len1 = MIN(len, sparse_files_block_size);
                        r1 = write_sparse(f, buf, len1);
                } else {
                        if (!wf_writeBuf) {
@@ -49,7 +50,7 @@ diff --git a/options.c b/options.c
  int do_compression = 0;
  int def_compress_level = Z_DEFAULT_COMPRESSION;
  int am_root = 0; /* 0 = normal, 1 = root, 2 = --super, -1 = --fake-super */
-@@ -358,6 +359,7 @@ void usage(enum logcode F)
+@@ -704,6 +705,7 @@ void usage(enum logcode F)
    rprintf(F,"     --fake-super            store/recover privileged attrs using xattrs\n");
  #endif
    rprintf(F," -S, --sparse                handle sparse files efficiently\n");
@@ -57,7 +58,7 @@ diff --git a/options.c b/options.c
    rprintf(F," -n, --dry-run               perform a trial run with no changes made\n");
    rprintf(F," -W, --whole-file            copy files whole (without delta-xfer algorithm)\n");
    rprintf(F," -x, --one-file-system       don't cross filesystem boundaries\n");
-@@ -542,6 +544,7 @@ static struct poptOption long_options[] = {
+@@ -900,6 +902,7 @@ static struct poptOption long_options[] = {
    {"sparse",          'S', POPT_ARG_VAL,    &sparse_files, 1, 0, 0 },
    {"no-sparse",        0,  POPT_ARG_VAL,    &sparse_files, 0, 0, 0 },
    {"no-S",             0,  POPT_ARG_VAL,    &sparse_files, 0, 0, 0 },
@@ -65,7 +66,7 @@ diff --git a/options.c b/options.c
    {"inplace",          0,  POPT_ARG_VAL,    &inplace, 1, 0, 0 },
    {"no-inplace",       0,  POPT_ARG_VAL,    &inplace, 0, 0, 0 },
    {"append",           0,  POPT_ARG_NONE,   0, OPT_APPEND, 0, 0 },
-@@ -1885,6 +1888,12 @@ void server_options(char **args, int *argc_p)
+@@ -2453,6 +2456,12 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -81,7 +82,7 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.yo b/rsync.yo
 --- a/rsync.yo
 +++ b/rsync.yo
-@@ -352,6 +352,7 @@ to the detailed description below for a complete description.  verb(
+@@ -359,6 +359,7 @@ to the detailed description below for a complete description.  verb(
       --super                 receiver attempts super-user activities
       --fake-super            store/recover privileged attrs using xattrs
   -S, --sparse                handle sparse files efficiently
@@ -89,9 +90,9 @@ diff --git a/rsync.yo b/rsync.yo
   -n, --dry-run               perform a trial run with no changes made
   -W, --whole-file            copy files whole (w/o delta-xfer algorithm)
   -x, --one-file-system       don't cross filesystem boundaries
-@@ -1043,6 +1044,15 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
- filesystem. It doesn't seem to handle seeks over null regions
correctly and ends up corrupting the files.
+@@ -1127,6 +1128,15 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
+ filesystem. It seems to have problems seeking over null regions,
+ and ends up corrupting the files.
  
 +dit(bf(--sparse-block=SIZE)) Change the block size used to handle sparse files
 +to SIZE bytes.  This option only has an effect if the bf(--sparse) (bf(-S))