diff options
Diffstat (limited to 'libglusterfs/src/common-utils.c')
| -rw-r--r-- | libglusterfs/src/common-utils.c | 15 | 
1 files changed, 10 insertions, 5 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 2a74d7bf239..e9237714498 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -49,6 +49,7 @@  #include "glusterfs/lkowner.h"  #include "glusterfs/syscall.h"  #include "cli1-xdr.h" +#include "glusterfs/globals.h"  #define XXH_INLINE_ALL  #include "xxhash.h"  #include <ifaddrs.h> @@ -2002,7 +2003,7 @@ compute_checksum(char *buf, const ssize_t size, uint32_t *checksum)  #define GF_CHECKSUM_BUF_SIZE 1024  int -get_checksum_for_file(int fd, uint32_t *checksum) +get_checksum_for_file(int fd, uint32_t *checksum, int op_version)  {      int ret = -1;      char buf[GF_CHECKSUM_BUF_SIZE] = { @@ -2013,8 +2014,12 @@ get_checksum_for_file(int fd, uint32_t *checksum)      sys_lseek(fd, 0L, SEEK_SET);      do {          ret = sys_read(fd, &buf, GF_CHECKSUM_BUF_SIZE); -        if (ret > 0) -            compute_checksum(buf, ret, checksum); +        if (ret > 0) { +            if (op_version < GD_OP_VERSION_6_0) +                compute_checksum(buf, GF_CHECKSUM_BUF_SIZE, checksum); +            else +                compute_checksum(buf, ret, checksum); +        }      } while (ret > 0);      /* set it back */ @@ -2024,7 +2029,7 @@ get_checksum_for_file(int fd, uint32_t *checksum)  }  int -get_checksum_for_path(char *path, uint32_t *checksum) +get_checksum_for_path(char *path, uint32_t *checksum, int op_version)  {      int ret = -1;      int fd = -1; @@ -2040,7 +2045,7 @@ get_checksum_for_path(char *path, uint32_t *checksum)          goto out;      } -    ret = get_checksum_for_file(fd, checksum); +    ret = get_checksum_for_file(fd, checksum, op_version);  out:      if (fd != -1)  | 
