FAILED: patch "[PATCH] fs/ntfs3: Check reserved size for maximum allowed" failed to apply to 5.19-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 13747aac8984e069427e5de5d68bb6cefa98551e Mon Sep 17 00:00:00 2001
From: Konstantin Komarov <[email protected]>
Date: Thu, 12 May 2022 19:18:11 +0300
Subject: [PATCH] fs/ntfs3: Check reserved size for maximum allowed
Also don't mask EFBIG
Fixes xfstest generic/485
Fixes 4342306f0f0d ("fs/ntfs3: Add file operations and implementation")
Signed-off-by Konstantin Komarov <[email protected]>
fs/ntfs3/attrib.c +9 -0
@@ -2114,9 +2114,11 @@ int attr_insert_range(struct ntfs_inode *ni, u64 vbo, u64 bytes)if (!attr_b->non_res) { data_size =le32_to_cpu (attr_b->res.data_size); + alloc_size = data_size; mask = sbi->cluster_mask;/* cluster_size - 1 */ }else { data_size =le64_to_cpu (attr_b->nres.data_size); + alloc_size =le64_to_cpu (attr_b->nres.alloc_size); mask = (sbi->cluster_size << attr_b->nres.c_unit) -1 ; }
@@ -2130,6 +2132,13 @@ int attr_insert_range(struct ntfs_inode *ni, u64 vbo, u64 bytes)return -EINVAL ; } +/* +* valid_size <= data_size <= alloc_size +* Check alloc_size for maximum possible. +*/ +if (bytes > sbi->maxbytes_sparse - alloc_size) +return -EFBIG ; + vcn = vbo >> sbi->cluster_bits; len = bytes >> sbi->cluster_bits;
fs/ntfs3/file.c +0 -3
@@ -733,9 +733,6 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)if (map_locked)filemap_invalidate_unlock (mapping); -if (err == -EFBIG ) - err = -ENOSPC ; -if (!err) { inode->i_ctime = inode->i_mtime =current_time (inode);mark_inode_dirty (inode);