72 lines
2.2 KiB
Diff
72 lines
2.2 KiB
Diff
From bf9a99963cfbd46962579a5617bff8c20bc8339c Mon Sep 17 00:00:00 2001
|
|
From: Piotr Sarna <sarna@skytechnology.pl>
|
|
Date: Wed, 16 Nov 2016 13:44:41 +0100
|
|
Subject: [PATCH] chunkserver: Add alternative include path for fallocate
|
|
|
|
This commit adds another include path for FALLOC_FL_PUNCH_HOLE flag
|
|
in order to make it work on CentOS 7, and, perhaps, other operating systems.
|
|
|
|
Closes #497
|
|
|
|
Change-Id: I55666e636cdb2e1f26fae7c8c2729833916d96af
|
|
---
|
|
EnvTests.cmake | 3 +++
|
|
config.h.in | 1 +
|
|
src/chunkserver/hddspacemgr.cc | 7 +++++++
|
|
3 files changed, 11 insertions(+)
|
|
|
|
diff --git a/EnvTests.cmake b/EnvTests.cmake
|
|
index d0cffb2..2eb86bb 100644
|
|
--- a/EnvTests.cmake
|
|
+++ b/EnvTests.cmake
|
|
@@ -95,6 +95,9 @@ endif()
|
|
|
|
set(CMAKE_REQUIRED_FLAGS "-D_GNU_SOURCE")
|
|
check_symbol_exists(FALLOC_FL_PUNCH_HOLE "fcntl.h" LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE)
|
|
+if(NOT LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE)
|
|
+ check_symbol_exists(FALLOC_FL_PUNCH_HOLE "linux/falloc.h" LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE_IN_LINUX_FALLOC_H)
|
|
+endif()
|
|
unset(CMAKE_REQUIRED_FLAGS)
|
|
|
|
set(CMAKE_REQUIRED_FLAGS "-std=c++11")
|
|
diff --git a/config.h.in b/config.h.in
|
|
index 6d83be4..10e0d86 100644
|
|
--- a/config.h.in
|
|
+++ b/config.h.in
|
|
@@ -107,6 +107,7 @@
|
|
#cmakedefine LIZARDFS_HAVE_PAM
|
|
#cmakedefine LIZARDFS_HAVE_FALLOCATE
|
|
#cmakedefine LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE
|
|
+#cmakedefine LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE_IN_LINUX_FALLOC_H
|
|
|
|
/* [CMake] Other */
|
|
#cmakedefine HAVE_CRCUTIL
|
|
diff --git a/src/chunkserver/hddspacemgr.cc b/src/chunkserver/hddspacemgr.cc
|
|
index 3b3b9ac..1a06727 100644
|
|
--- a/src/chunkserver/hddspacemgr.cc
|
|
+++ b/src/chunkserver/hddspacemgr.cc
|
|
@@ -19,6 +19,10 @@
|
|
#include "common/platform.h"
|
|
#include "chunkserver/hddspacemgr.h"
|
|
|
|
+#ifdef LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE_IN_LINUX_FALLOC_H
|
|
+# define LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE
|
|
+#endif
|
|
+
|
|
#if defined(LIZARDFS_HAVE_FALLOCATE) && defined(LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE) && !defined(_GNU_SOURCE)
|
|
#define _GNU_SOURCE
|
|
#endif
|
|
@@ -26,6 +30,9 @@
|
|
#include <dirent.h>
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
+#ifdef LIZARDFS_HAVE_FALLOC_FL_PUNCH_HOLE_IN_LINUX_FALLOC_H
|
|
+# include <linux/falloc.h>
|
|
+#endif
|
|
#include <inttypes.h>
|
|
#include <limits.h>
|
|
#include <math.h>
|
|
--
|
|
2.9.3
|
|
|