diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2021-04-01 20:25:32 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2021-04-01 20:25:32 -0700 |
commit | 98e64635bdb43b9684b6afe77d01f8d841b0a72a (patch) | |
tree | e6eab2262c276d38e2b9e5e4adaa95780e6f736d | |
parent | f056fbeff08d30a6d9acdb9e06704461ceee3500 (diff) | |
download | f2fs-tools-98e64635bdb43b9684b6afe77d01f8d841b0a72a.tar.gz |
resize.f2fs: add force option to rewrite broken calculation
This patch adds "-f" for resize.f2fs to fix broken resized f2fs.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r-- | fsck/main.c | 6 | ||||
-rw-r--r-- | fsck/resize.c | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/fsck/main.c b/fsck/main.c index be30e00..64efa87 100644 --- a/fsck/main.c +++ b/fsck/main.c @@ -506,7 +506,7 @@ void f2fs_parse_options(int argc, char *argv[]) #endif } else if (!strcmp("resize.f2fs", prog)) { #ifdef WITH_RESIZE - const char *option_string = "d:st:iV"; + const char *option_string = "d:fst:iV"; c.func = RESIZE; while ((option = getopt(argc, argv, option_string)) != EOF) { @@ -522,6 +522,10 @@ void f2fs_parse_options(int argc, char *argv[]) MSG(0, "Info: Debug level = %d\n", c.dbg_lv); break; + case 'f': + c.force = 1; + MSG(0, "Info: Force to resize\n"); + break; case 's': c.safe_resize = 1; break; diff --git a/fsck/resize.c b/fsck/resize.c index 46b1cfb..0425498 100644 --- a/fsck/resize.c +++ b/fsck/resize.c @@ -714,8 +714,9 @@ int f2fs_resize(struct f2fs_sb_info *sbi) } else { return f2fs_resize_shrink(sbi); } - else if ((c.target_sectors * c.sector_size >> - get_sb(log_blocksize)) > get_sb(block_count)) + else if (((c.target_sectors * c.sector_size >> + get_sb(log_blocksize)) > get_sb(block_count)) || + c.force) return f2fs_resize_grow(sbi); else { MSG(0, "Nothing to resize.\n"); |