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

Josef Bacik josef at redhat.com
Fri Nov 12 15:55:05 CST 2010


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 at redhat.com>
---
 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




More information about the xfs mailing list