From: Jason Dillaman Date: Fri, 18 Dec 2015 20:22:13 +0000 (-0500) Subject: librbd: fix merge-diff for >2GB diff-files X-Git-Tag: v0.94.6~24^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=26e832e76de90e0a751868b044ea745a97a5af82;p=ceph.git librbd: fix merge-diff for >2GB diff-files Fixes: #14063 Signed-off-by: Jason Dillaman --- 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; }