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