To keep line with e2fsprogs, let's allow to fsck mounted image as readonly w/ -f option.
Reported-by: Perfect Gentleman <[email protected]> Signed-off-by: Chao Yu <[email protected]> --- fsck/main.c | 1 + include/f2fs_fs.h | 1 + lib/libf2fs.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fsck/main.c b/fsck/main.c index 675c603b1a76..bb79f6e9fc89 100644 --- a/fsck/main.c +++ b/fsck/main.c @@ -249,6 +249,7 @@ void f2fs_parse_options(int argc, char *argv[]) case 'f': case 'y': c.fix_on = 1; + c.force = 1; MSG(0, "Info: Force to fix corruption\n"); break; case 'q': diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h index 65cc8fdb3c22..6eebb3ac44e1 100644 --- a/include/f2fs_fs.h +++ b/include/f2fs_fs.h @@ -369,6 +369,7 @@ struct f2fs_configuration { void *private; int dry_run; int fix_on; + int force; int defset; int bug_on; int alloc_failed; diff --git a/lib/libf2fs.c b/lib/libf2fs.c index cc335dbb48ee..498f6c0968d8 100644 --- a/lib/libf2fs.c +++ b/lib/libf2fs.c @@ -821,7 +821,7 @@ int get_device_info(int i) return -1; } - if (S_ISBLK(stat_buf->st_mode)) + if (S_ISBLK(stat_buf->st_mode) && !c.force) fd = open(dev->path, O_RDWR | O_EXCL); else fd = open(dev->path, O_RDWR); -- 2.18.0.rc1 _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
