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

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