On sudden f2fs shutdown, zoned block device status and f2fs meta data can be inconsistent. When f2fs shutdown happens during write operations, write pointers on the device go forward but the f2fs meta data does not reflect write pointer progress. This inconsistency will eventually causes "Unaligned write command" error when restarting write operation after the next mount. This error can be observed with xfstests test case generic/388, which enforces sudden shutdown during write operation and checks the file system recovery. Once the error happens because of the inconsistency, the file system requires fix. However, fsck.f2fs does not have a feature to check and fix it.
This patch series adds a new feature to fsck.f2fs to check and fix the inconsistency. First patch adds a function which helps fsck to call report zone command to zoned block devices. Second patch checks write pointers of zones that current segments recorded in meta data point to. This patch series depends on other patches for zoned block devices, then it conflicts with the master branch in f2fs-tools.git as of Aug/19/2019. It can be applied without conflict to dev and dev-test branch tips. Changes from v2: * Reflected review comments by Chao Yu * Dropped 4th patch and 2nd patch (2nd patch was required for the 4th patch) Changes from v1: * Fixed build failure on dev branch Shin'ichiro Kawasaki (2): libf2fs_zoned: Introduce f2fs_report_zones() helper function fsck.f2fs: Check write pointer consistency with current segments fsck/fsck.c | 131 ++++++++++++++++++++++++++++++++++++++++++++ fsck/fsck.h | 3 + fsck/main.c | 2 + include/f2fs_fs.h | 5 ++ lib/libf2fs_zoned.c | 59 ++++++++++++++++++++ 5 files changed, 200 insertions(+) -- 2.21.0 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel