* [f2fs-dev] [PATCH v2] f2fs-tools: disable nat_bits by default in Android
@ 2025-03-07 1:59 Chao Yu via Linux-f2fs-devel
0 siblings, 0 replies; only message in thread
From: Chao Yu via Linux-f2fs-devel @ 2025-03-07 1:59 UTC (permalink / raw)
To: jaegeuk; +Cc: linux-f2fs-devel
This patch turns off nat_bits feature by default in Android,
for other scenario, keep it on and keep an eye on it.
Signed-off-by: Chao Yu <chao@kernel.org>
---
v2:
- fix to disable nat_bits feature in fsck tool.
fsck/main.c | 3 +++
fsck/mount.c | 3 ++-
include/f2fs_fs.h | 6 ++++++
mkfs/f2fs_format.c | 3 ++-
mkfs/f2fs_format_main.c | 1 +
5 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/fsck/main.c b/fsck/main.c
index 25d50e2..9e0f94e 100644
--- a/fsck/main.c
+++ b/fsck/main.c
@@ -219,6 +219,9 @@ static void __add_fsck_options(void)
{
/* -a */
c.auto_fix = 1;
+
+ /* disable nat_bits feature by default */
+ c.disabled_feature |= F2FS_FEATURE_NAT_BITS;
}
static void add_default_options(void)
diff --git a/fsck/mount.c b/fsck/mount.c
index e493f22..0b05f00 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1713,7 +1713,8 @@ u32 update_nat_bits_flags(struct f2fs_super_block *sb,
nat_bits_bytes = get_sb(segment_count_nat) << 5;
nat_bits_blocks = F2FS_BYTES_TO_BLK((nat_bits_bytes << 1) + 8 +
F2FS_BLKSIZE - 1);
- if (get_cp(cp_pack_total_block_count) <=
+ if (!(c.disabled_feature & F2FS_FEATURE_NAT_BITS) &&
+ get_cp(cp_pack_total_block_count) <=
(1 << get_sb(log_blocks_per_seg)) - nat_bits_blocks)
flags |= CP_NAT_BITS_FLAG;
else
diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index 0cb9228..bb40adc 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -1471,6 +1471,11 @@ enum {
#define MAX_CACHE_SUMS 8
+/* feature list in Android */
+enum {
+ F2FS_FEATURE_NAT_BITS = 0x0001,
+};
+
struct f2fs_configuration {
uint32_t conf_reserved_sections;
uint32_t reserved_segments;
@@ -1537,6 +1542,7 @@ struct f2fs_configuration {
int large_nat_bitmap;
int fix_chksum; /* fix old cp.chksum position */
unsigned int feature; /* defined features */
+ unsigned int disabled_feature; /* disabled feature, used for Android only */
unsigned int quota_bits; /* quota bits */
time_t fixed_time;
int roll_forward;
diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index 6635eed..c28ebb0 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -893,7 +893,8 @@ static int f2fs_write_check_point_pack(void)
/* cp page (2), data summaries (1), node summaries (3) */
set_cp(cp_pack_total_block_count, 6 + get_sb(cp_payload));
flags = CP_UMOUNT_FLAG | CP_COMPACT_SUM_FLAG;
- if (get_cp(cp_pack_total_block_count) <=
+ if (!(c.disabled_feature & F2FS_FEATURE_NAT_BITS) &&
+ get_cp(cp_pack_total_block_count) <=
(1 << get_sb(log_blocks_per_seg)) - nat_bits_blocks)
flags |= CP_NAT_BITS_FLAG;
diff --git a/mkfs/f2fs_format_main.c b/mkfs/f2fs_format_main.c
index 9407f5b..5b4569d 100644
--- a/mkfs/f2fs_format_main.c
+++ b/mkfs/f2fs_format_main.c
@@ -143,6 +143,7 @@ static void add_default_options(void)
force_overwrite = 1;
c.wanted_sector_size = F2FS_BLKSIZE;
c.root_uid = c.root_gid = 0;
+ c.disabled_feature |= F2FS_FEATURE_NAT_BITS;
/* RO doesn't need any other features */
if (c.feature & F2FS_FEATURE_RO)
--
2.40.1
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2025-03-07 1:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-07 1:59 [f2fs-dev] [PATCH v2] f2fs-tools: disable nat_bits by default in Android Chao Yu via Linux-f2fs-devel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.