Patch "f2fs: Restrict max filesize for 16K f2fs" has been added to the 6.7-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    f2fs: Restrict max filesize for 16K f2fs

to the 6.7-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     f2fs-restrict-max-filesize-for-16k-f2fs.patch
and it can be found in the queue-6.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 04968e4208cf783ddb86f30c8bf56be3088bba20
Author: Daniel Rosenberg <drosen@xxxxxxxxxx>
Date:   Mon Dec 4 18:38:01 2023 -0800

    f2fs: Restrict max filesize for 16K f2fs
    
    [ Upstream commit a6a010f5def544af3efcfe21683905a712b60536 ]
    
    Blocks are tracked by u32, so the max permitted filesize is
    (U32_MAX + 1) * BLOCK_SIZE. Additionally, in order to support crypto
    data unit sizes of 4K with a 16K block with IV_INO_LBLK_{32,64}, we must
    further restrict max filesize to (U32_MAX + 1) * 4096. This does not
    affect 4K blocksize f2fs as the natural limit for files are well below
    that.
    
    Fixes: d7e9a9037de2 ("f2fs: Support Block Size == Page Size")
    Signed-off-by: Daniel Rosenberg <drosen@xxxxxxxxxx>
    Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 033af907c3b1..5dfbc6b4c0ac 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -3364,6 +3364,14 @@ loff_t max_file_blocks(struct inode *inode)
 	leaf_count *= NIDS_PER_BLOCK;
 	result += leaf_count;
 
+	/*
+	 * For compatibility with FSCRYPT_POLICY_FLAG_IV_INO_LBLK_{64,32} with
+	 * a 4K crypto data unit, we must restrict the max filesize to what can
+	 * fit within U32_MAX + 1 data units.
+	 */
+
+	result = min(result, (((loff_t)U32_MAX + 1) * 4096) >> F2FS_BLKSIZE_BITS);
+
 	return result;
 }
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux