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

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