xfs
[Top] [All Lists]

[PATCH] [RFC] xfsprogs: add -p for hole punching to falloc command

To: xfs@xxxxxxxxxxx
Subject: [PATCH] [RFC] xfsprogs: add -p for hole punching to falloc command
From: Josef Bacik <josef@xxxxxxxxxx>
Date: Fri, 12 Nov 2010 16:55:05 -0500
Obviously this is highly dependant upon my current implementation of hole
punching via fallocate going in, but this is the support code for falloc to deal
with hole punching.  This is necessary to run the xfstest I have to make sure
the punching stuff is working properly.  Thanks,

Signed-off-by: Josef Bacik <josef@xxxxxxxxxx>
---
 io/prealloc.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/io/prealloc.c b/io/prealloc.c
index c8b7df6..4b14da7 100644
--- a/io/prealloc.c
+++ b/io/prealloc.c
@@ -153,12 +153,23 @@ fallocate_f(
        xfs_flock64_t   segment;
        int             mode = 0;
        int             c;
+       const char      *opts;
 
-       while ((c = getopt(argc, argv, "k")) != EOF) {
+#if defined (FALLOC_FL_PUNCH_HOLE)
+       opts = "kp";
+#else
+       opts = "k";
+#endif
+       while ((c = getopt(argc, argv, opts)) != EOF) {
                switch (c) {
                case 'k':
                        mode = FALLOC_FL_KEEP_SIZE;
                        break;
+#if defined (FALLOC_FL_PUNCH_HOLE)
+               case 'p':
+                       mode = FALLOC_FL_PUNCH_HOLE;
+                       break;
+#endif
                default:
                        command_usage(&falloc_cmd);
                }
@@ -236,7 +247,11 @@ prealloc_init(void)
        falloc_cmd.argmin = 2;
        falloc_cmd.argmax = -1;
        falloc_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
+#if defined (FALLOC_FL_PUNCH_HOLE)
+       falloc_cmd.args = _("[-k] [-p] off len");
+#else
        falloc_cmd.args = _("[-k] off len");
+#endif
        falloc_cmd.oneline =
                _("allocates space associated with part of a file via 
fallocate");
 
-- 
1.6.6.1

<Prev in Thread] Current Thread [Next in Thread>