Blame SOURCES/0093-fs-ntfs3-Forbid-FALLOC_FL_PUNCH_HOLE-for-normal-file.patch

Kmods SIG 8b815c
From 8241fffae7c8bab5cec5fc8bcaceccd03079e3aa Mon Sep 17 00:00:00 2001
Kmods SIG 8b815c
From: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Kmods SIG 8b815c
Date: Tue, 28 Sep 2021 20:04:10 +0300
Kmods SIG 8b815c
Subject: [Backport 8241fffae7c8] src: Forbid FALLOC_FL_PUNCH_HOLE for
Kmods SIG 8b815c
 normal files
Kmods SIG 8b815c
Kmods SIG 8b815c
FALLOC_FL_PUNCH_HOLE isn't allowed with normal files.
Kmods SIG 8b815c
Filesystem must remember info about hole, but for normal file
Kmods SIG 8b815c
we can only zero it and forget.
Kmods SIG 8b815c
Kmods SIG 8b815c
Fixes: 4342306f0f0d ("src: Add file operations and implementation")
Kmods SIG 8b815c
Now xfstests generic/016 generic/021 generic/022 pass.
Kmods SIG 8b815c
Kmods SIG 8b815c
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Kmods SIG 8b815c
---
Kmods SIG 8b815c
 src/file.c | 7 +++++--
Kmods SIG 8b815c
 1 file changed, 5 insertions(+), 2 deletions(-)
Kmods SIG 8b815c
Kmods SIG 8b815c
diff --git a/src/file.c b/src/file.c
Kmods SIG 8b815c
index 5fb3508e5422cc6654381897d6fdb4a204a543a4..43b1451bff539576cd03c0f624708bf65b959270 100644
Kmods SIG 8b815c
--- a/src/file.c
Kmods SIG 8b815c
+++ b/src/file.c
Kmods SIG 8b815c
@@ -587,8 +587,11 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)
Kmods SIG 8b815c
 		truncate_pagecache(inode, vbo_down);
Kmods SIG 8b815c
 
Kmods SIG 8b815c
 		if (!is_sparsed(ni) && !is_compressed(ni)) {
Kmods SIG 8b815c
-			/* Normal file. */
Kmods SIG 8b815c
-			err = ntfs_zero_range(inode, vbo, end);
Kmods SIG 8b815c
+			/*
Kmods SIG 8b815c
+			 * Normal file, can't make hole.
Kmods SIG 8b815c
+			 * TODO: Try to find way to save info about hole.
Kmods SIG 8b815c
+			 */
Kmods SIG 8b815c
+			err = -EOPNOTSUPP;
Kmods SIG 8b815c
 			goto out;
Kmods SIG 8b815c
 		}
Kmods SIG 8b815c
 
Kmods SIG 8b815c
-- 
Kmods SIG 8b815c
2.31.1
Kmods SIG 8b815c