From eafa6ebf10924ec36cb5d28fd9d97a23de089bd0 Mon Sep 17 00:00:00 2001
From: Pádraig Brady
Date: Mon, 6 Oct 2014 10:19:58 +0100
Subject: cp: avoid speculative preallocation with --sparse=always
With --sparse=always use fallocate(...PUNCH_HOLE...) to
avoid any permanent allocation due to speculative
preallocation employed by file systems such as XFS.
* m4/jm-macros.m4: Check for and fallocate().
* src/copy.c (punch_hole): A new function to try and punch
a hole at the specified offset if supported.
(create_hole): Call punch_hole() after requesting a hole.
(extent_copy): Likewise.
* NEWS: Mention the improvement.
---
m4/jm-macros.m4 | 2 ++
1 file changed, 2 insertions(+)
(limited to 'm4/jm-macros.m4')
diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4
index a96ecabb6..07b90850c 100644
--- a/m4/jm-macros.m4
+++ b/m4/jm-macros.m4
@@ -78,6 +78,7 @@ AC_DEFUN([coreutils_MACROS],
AC_CHECK_FUNCS_ONCE([
endgrent
endpwent
+ fallocate
fchown
fchmod
ftruncate
@@ -189,6 +190,7 @@ AC_DEFUN([gl_CHECK_ALL_HEADERS],
[
AC_CHECK_HEADERS_ONCE([
hurd.h
+ linux/falloc.h
paths.h
priv.h
stropts.h
--
cgit v1.2.3-54-g00ecf