Blame SOURCES/0073-fs-ntfs3-Initiliaze-sb-blocksize-only-in-one-place-r.patch

Kmods SIG 63c143
From 28861e3bbd9e7ac4cd9c811aad71b4d116e27930 Mon Sep 17 00:00:00 2001
Kmods SIG 63c143
From: Kari Argillander <kari.argillander@gmail.com>
Kmods SIG 63c143
Date: Thu, 9 Sep 2021 21:09:42 +0300
Kmods SIG 63c143
Subject: [Backport 28861e3bbd9e] src: Initiliaze sb blocksize only in one
Kmods SIG 63c143
 place + refactor
Kmods SIG 63c143
Kmods SIG 63c143
Right now sb blocksize first get initiliazed in fill_super but in can be
Kmods SIG 63c143
changed in helper function. It makes more sense to that this happened
Kmods SIG 63c143
only in one place.
Kmods SIG 63c143
Kmods SIG 63c143
Because we move this to helper function it makes more sense that
Kmods SIG 63c143
s_maxbytes will also be there. I rather have every sb releted thing in
Kmods SIG 63c143
fill_super, but because there is already sb releted stuff in this
Kmods SIG 63c143
helper. This will have to do for now.
Kmods SIG 63c143
Kmods SIG 63c143
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
Kmods SIG 63c143
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Kmods SIG 63c143
---
Kmods SIG 63c143
 src/super.c | 13 +++----------
Kmods SIG 63c143
 1 file changed, 3 insertions(+), 10 deletions(-)
Kmods SIG 63c143
Kmods SIG 63c143
diff --git a/src/super.c b/src/super.c
Kmods SIG 63c143
index 3d034eac2bd197408e7e64a279799d68ad1a8129..cefb9ddaf4db78890e9dc389416f47323bf33bcd 100644
Kmods SIG 63c143
--- a/src/super.c
Kmods SIG 63c143
+++ b/src/super.c
Kmods SIG 63c143
@@ -840,8 +840,7 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
Kmods SIG 63c143
 	rec->total = cpu_to_le32(sbi->record_size);
Kmods SIG 63c143
 	((struct ATTRIB *)Add2Ptr(rec, ao))->type = ATTR_END;
Kmods SIG 63c143
 
Kmods SIG 63c143
-	if (sbi->cluster_size < PAGE_SIZE)
Kmods SIG 63c143
-		sb_set_blocksize(sb, sbi->cluster_size);
Kmods SIG 63c143
+	sb_set_blocksize(sb, min_t(u32, sbi->cluster_size, PAGE_SIZE));
Kmods SIG 63c143
 
Kmods SIG 63c143
 	sbi->block_mask = sb->s_blocksize - 1;
Kmods SIG 63c143
 	sbi->blocks_per_cluster = sbi->cluster_size >> sb->s_blocksize_bits;
Kmods SIG 63c143
@@ -854,9 +853,11 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
Kmods SIG 63c143
 	if (clusters >= (1ull << (64 - sbi->cluster_bits)))
Kmods SIG 63c143
 		sbi->maxbytes = -1;
Kmods SIG 63c143
 	sbi->maxbytes_sparse = -1;
Kmods SIG 63c143
+	sb->s_maxbytes = MAX_LFS_FILESIZE;
Kmods SIG 63c143
 #else
Kmods SIG 63c143
 	/* Maximum size for sparse file. */
Kmods SIG 63c143
 	sbi->maxbytes_sparse = (1ull << (sbi->cluster_bits + 32)) - 1;
Kmods SIG 63c143
+	sb->s_maxbytes = 0xFFFFFFFFull << sbi->cluster_bits;
Kmods SIG 63c143
 #endif
Kmods SIG 63c143
 
Kmods SIG 63c143
 	err = 0;
Kmods SIG 63c143
@@ -911,20 +912,12 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
Kmods SIG 63c143
 			~(u64)(sbi->discard_granularity - 1);
Kmods SIG 63c143
 	}
Kmods SIG 63c143
 
Kmods SIG 63c143
-	sb_set_blocksize(sb, PAGE_SIZE);
Kmods SIG 63c143
-
Kmods SIG 63c143
 	/* Parse boot. */
Kmods SIG 63c143
 	err = ntfs_init_from_boot(sb, rq ? queue_logical_block_size(rq) : 512,
Kmods SIG 63c143
 				  bdev->bd_inode->i_size);
Kmods SIG 63c143
 	if (err)
Kmods SIG 63c143
 		return err;
Kmods SIG 63c143
 
Kmods SIG 63c143
-#ifdef CONFIG_NTFS3_64BIT_CLUSTER
Kmods SIG 63c143
-	sb->s_maxbytes = MAX_LFS_FILESIZE;
Kmods SIG 63c143
-#else
Kmods SIG 63c143
-	sb->s_maxbytes = 0xFFFFFFFFull << sbi->cluster_bits;
Kmods SIG 63c143
-#endif
Kmods SIG 63c143
-
Kmods SIG 63c143
 	/*
Kmods SIG 63c143
 	 * Load $Volume. This should be done before $LogFile
Kmods SIG 63c143
 	 * 'cause 'sbi->volume.ni' is used 'ntfs_set_state'.
Kmods SIG 63c143
-- 
Kmods SIG 63c143
2.31.1
Kmods SIG 63c143