Nice catch! On 02/07, Kinglong Mee wrote: > memset(raw_node, 0, F2FS_BLKSIZE) sets the next_blkaddr to zero, > so that, only one reset dnode is cleaned always. > > Fixes: ad042d9194f5 "mkfs.f2fs: reset dnode with zeros", > Signed-off-by: Kinglong Mee <kinglong...@gmail.com> > --- > mkfs/f2fs_format.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c > index 3c13026..1b10e4f 100644 > --- a/mkfs/f2fs_format.c > +++ b/mkfs/f2fs_format.c > @@ -775,6 +775,8 @@ static int f2fs_write_super_block(void) > #ifndef WITH_ANDROID > static int discard_obsolete_dnode(struct f2fs_node *raw_node, u_int64_t > offset) > { > + u_int64_t next_blkaddr = 0; > + > if (c.zoned_mode) > return 0; > do { > @@ -787,6 +789,7 @@ static int discard_obsolete_dnode(struct f2fs_node > *raw_node, u_int64_t offset) > return -1; > } > > + next_blkaddr = le32_to_cpu(raw_node->footer.next_blkaddr); > memset(raw_node, 0, F2FS_BLKSIZE); > > DBG(1, "\tDiscard dnode, at offset 0x%08"PRIx64"\n", offset); > @@ -794,7 +797,7 @@ static int discard_obsolete_dnode(struct f2fs_node > *raw_node, u_int64_t offset) > MSG(1, "\tError: While discarding direct node!!!\n"); > return -1; > } > - offset = le32_to_cpu(raw_node->footer.next_blkaddr); > + offset = next_blkaddr; > } while (1); > > return 0; > -- > 2.9.3
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel