From 2658b9616fe63d2fd9e2654676877ab014639a92 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 6 Dec 2012 11:21:44 -0500 Subject: [PATCH] contrib/fallocate: add support for punch functionality Also fix the -o option so it works correctly (instead of core dumping). Signed-off-by: "Theodore Ts'o" --- contrib/fallocate.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/contrib/fallocate.c b/contrib/fallocate.c index 0e8319fe..1436b701 100644 --- a/contrib/fallocate.c +++ b/contrib/fallocate.c @@ -35,6 +35,7 @@ // #include #define FALLOC_FL_KEEP_SIZE 0x01 +#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */ void usage(void) { @@ -94,12 +95,17 @@ int main(int argc, char **argv) int error; int tflag = 0; - while ((opt = getopt(argc, argv, "nl:ot")) != -1) { + while ((opt = getopt(argc, argv, "npl:o:t")) != -1) { switch(opt) { case 'n': /* do not change filesize */ falloc_mode = FALLOC_FL_KEEP_SIZE; break; + case 'p': + /* punch mode */ + falloc_mode = (FALLOC_FL_PUNCH_HOLE | + FALLOC_FL_KEEP_SIZE); + break; case 'l': length = cvtnum(optarg); break;