]> www.infradead.org Git - users/hch/misc.git/commitdiff
f2fs: fix to clear unusable_cap for checkpoint=enable
authorChao Yu <chao@kernel.org>
Thu, 7 Aug 2025 01:48:35 +0000 (09:48 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 20 Aug 2025 17:44:09 +0000 (17:44 +0000)
mount -t f2fs -o checkpoint=disable:10% /dev/vdb /mnt/f2fs/
mount -t f2fs -o remount,checkpoint=enable /dev/vdb /mnt/f2fs/

kernel log:
F2FS-fs (vdb): Adjust unusable cap for checkpoint=disable = 204440 / 10%

If we has assigned checkpoint=enable mount option, unusable_cap{,_perc}
parameters of checkpoint=disable should be reset, then calculation and
log print could be avoid in adjust_unusable_cap_perc().

Fixes: 1ae18f71cb52 ("f2fs: fix checkpoint=disable:%u%%")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/super.c

index 0638ae9816ac438de4cd726abe9b0500384a0c57..195ec6e598d2914e212a50475da4ca50b3ff2c1b 100644 (file)
@@ -998,6 +998,10 @@ static int f2fs_parse_param(struct fs_context *fc, struct fs_parameter *param)
                        ctx_set_opt(ctx, F2FS_MOUNT_DISABLE_CHECKPOINT);
                        break;
                case Opt_checkpoint_enable:
+                       F2FS_CTX_INFO(ctx).unusable_cap_perc = 0;
+                       ctx->spec_mask |= F2FS_SPEC_checkpoint_disable_cap_perc;
+                       F2FS_CTX_INFO(ctx).unusable_cap = 0;
+                       ctx->spec_mask |= F2FS_SPEC_checkpoint_disable_cap;
                        ctx_clear_opt(ctx, F2FS_MOUNT_DISABLE_CHECKPOINT);
                        break;
                default: