[Devel] [PATCH VZ10] fs: adapt to new checks of fallocate mode

Alexey Kuznetsov kuznet at virtuozzo.com
Sun Sep 6 03:20:21 MSK 2026


This small lapse halved performance of vstorage

Affects: #VSTOR-142784

Signed-off-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
---
 fs/ext4/extents.c | 3 ++-
 fs/open.c         | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index b771cb5..38f5077 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4769,7 +4769,8 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len)
 	if (ret)
 		goto out_inode_lock;
 
-	if ((mode & FALLOC_FL_MODE_MASK) == FALLOC_FL_ALLOCATE_RANGE) {
+	if ((mode & FALLOC_FL_MODE_MASK) == FALLOC_FL_ALLOCATE_RANGE ||
+	    (mode & FALLOC_FL_MODE_MASK) == FALLOC_FL_PREALLOCATE) {
 		ret = ext4_do_fallocate(file, offset, len, mode);
 		goto out_inode_lock;
 	}
diff --git a/fs/open.c b/fs/open.c
index 91f4785..fc72ad0 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -267,6 +267,7 @@ int vfs_fallocate(struct file *file, int mode, loff_t offset, loff_t len)
 	case FALLOC_FL_ALLOCATE_RANGE:
 	case FALLOC_FL_UNSHARE_RANGE:
 	case FALLOC_FL_ZERO_RANGE:
+	case FALLOC_FL_PREALLOCATE:
 		break;
 	case FALLOC_FL_PUNCH_HOLE:
 		if (!(mode & FALLOC_FL_KEEP_SIZE))
-- 
1.8.3.1



More information about the Devel mailing list