]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_io: add -p for hole punching to falloc command
authorChristoph Hellwig <hch@infradead.org>
Sat, 5 Mar 2011 00:22:24 +0000 (00:22 +0000)
committerAlex Elder <aelder@sgi.com>
Fri, 11 Mar 2011 20:27:19 +0000 (14:27 -0600)
Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
io/prealloc.c

index c8b7df658a585747cfd3beae42b4aa01da3c71ee..49ae295a31f2eebb748cab2fe6af9ad06a9847ec 100644 (file)
 #include "init.h"
 #include "io.h"
 
+#ifndef FALLOC_FL_PUNCH_HOLE
+#define FALLOC_FL_PUNCH_HOLE   0x02
+#endif
+
 static cmdinfo_t allocsp_cmd;
 static cmdinfo_t freesp_cmd;
 static cmdinfo_t resvsp_cmd;
@@ -154,11 +158,14 @@ fallocate_f(
        int             mode = 0;
        int             c;
 
-       while ((c = getopt(argc, argv, "k")) != EOF) {
+       while ((c = getopt(argc, argv, "kp")) != EOF) {
                switch (c) {
                case 'k':
                        mode = FALLOC_FL_KEEP_SIZE;
                        break;
+               case 'p':
+                       mode = FALLOC_FL_PUNCH_HOLE;
+                       break;
                default:
                        command_usage(&falloc_cmd);
                }
@@ -236,7 +243,7 @@ prealloc_init(void)
        falloc_cmd.argmin = 2;
        falloc_cmd.argmax = -1;
        falloc_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
-       falloc_cmd.args = _("[-k] off len");
+       falloc_cmd.args = _("[-k] [-p] off len");
        falloc_cmd.oneline =
                _("allocates space associated with part of a file via fallocate");