From 26e832e76de90e0a751868b044ea745a97a5af82 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Fri, 18 Dec 2015 15:22:13 -0500 Subject: [PATCH] librbd: fix merge-diff for >2GB diff-files Fixes: #14063 Signed-off-by: Jason Dillaman --- src/rbd.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rbd.cc b/src/rbd.cc index 6f5457d1461f..b56a5587606b 100644 --- a/src/rbd.cc +++ b/src/rbd.cc @@ -8,6 +8,7 @@ * LGPL2. See file COPYING. * */ +#define _LARGEFILE64_SOURCE #include "include/int_types.h" #include "mon/MonClient.h" @@ -42,6 +43,7 @@ #include #include #include +#include #include #include "include/memory.h" #include @@ -2048,7 +2050,8 @@ static int do_merge_diff(const char *first, const char *second, const char *path if (r < 0) goto done; } else { - r = lseek(fd, delta, SEEK_CUR); + off64_t l = lseek64(fd, delta, SEEK_CUR); + r = l < 0 ? -errno : 0; if(r < 0) goto done; } -- 2.47.3