1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-25 12:15:32 +03:00
aports/community/ceph/fix-seek-data-hole.patch
iggy 2fa73ad7ae community/ceph: upgrade to 14.2.8
**Changes:**

* Bump the version from 14.2.7 -> 14.2.8
* Add patch to fix build on musl
* Set MAKEFLAGS to keep build from using all the memory... thanks C++
* Re-enable the build
2020-03-11 01:45:13 -03:00

72 lines
1.9 KiB
Diff

From ffc79f128ca577908899689fffbdbbd97a7af2ef Mon Sep 17 00:00:00 2001
From: Stefan Bischoff <stefan.bischoff@9plus.de>
Date: Tue, 12 Nov 2019 16:11:32 +0100
Subject: [PATCH] client: Fixes for missing consts SEEK_DATA and SEEK_HOLE on
alpine linux
Fixes: https://tracker.ceph.com/issues/42602
Signed-off-by: Stefan Bischoff <stefan.bischoff@lw-rulez.de>
---
src/client/Client.cc | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/src/client/Client.cc b/src/client/Client.cc
index 281b4ef03123..737bfabe67f7 100644
--- a/src/client/Client.cc
+++ b/src/client/Client.cc
@@ -8908,9 +8908,28 @@ loff_t Client::_lseek(Fh *f, loff_t offset, int whence)
{
Inode *in = f->inode.get();
int r;
+ bool whence_check = false;
loff_t pos = -1;
- if (whence == SEEK_END || whence == SEEK_DATA || whence == SEEK_HOLE) {
+ switch (whence) {
+ case SEEK_END:
+ whence_check = true;
+ break;
+
+#ifdef SEEK_DATA
+ case SEEK_DATA:
+ whence_check = true;
+ break;
+#endif
+
+#ifdef SEEK_HOLE
+ case SEEK_HOLE:
+ whence_check = true;
+ break;
+#endif
+ }
+
+ if (whence_check) {
r = _getattr(in, CEPH_STAT_CAP_SIZE, f->actor_perms);
if (r < 0) {
return r;
@@ -8930,6 +8949,7 @@ loff_t Client::_lseek(Fh *f, loff_t offset, int whence)
pos = in->size + offset;
break;
+#ifdef SEEK_DATA
case SEEK_DATA:
if (offset < 0 || static_cast<uint64_t>(offset) >= in->size) {
r = -ENXIO;
@@ -8937,7 +8957,9 @@ loff_t Client::_lseek(Fh *f, loff_t offset, int whence)
}
pos = offset;
break;
+#endif
+#ifdef SEEK_HOLE
case SEEK_HOLE:
if (offset < 0 || static_cast<uint64_t>(offset) >= in->size) {
r = -ENXIO;
@@ -8946,6 +8968,7 @@ loff_t Client::_lseek(Fh *f, loff_t offset, int whence)
pos = in->size;
}
break;
+#endif
default:
ldout(cct, 1) << __func__ << ": invalid whence value " << whence << dendl;