Am Freitag, 29. März 2019, 10:43:33 CEST schrieb Lars Persson: > On Thu, Mar 28, 2019 at 6:31 PM Richard Weinberger > <richard.weinberger@xxxxxxxxx> wrote: > > > > Can you please share me your corrupted fs? > > I'm not so sure what is really the root cause. > > The thing is, ubifs_delete_orphan() does not need to tigger a commit. > > Ff something depends on a commit, we have another problem, I fear. > > > > Thanks. The download link for the file-system was shared to your gmail address. Can you please run your tests again with this patch applied? It needs further optimization, but we are on the right track. diff --git a/fs/ubifs/orphan.c b/fs/ubifs/orphan.c index 2f1618f300fb..c15e484f73a4 100644 --- a/fs/ubifs/orphan.c +++ b/fs/ubifs/orphan.c @@ -691,8 +691,21 @@ static int do_kill_orphans(struct ubifs_info *c, struct ubifs_scan_leb *sleb, n = (le32_to_cpu(orph->ch.len) - UBIFS_ORPH_NODE_SZ) >> 3; for (i = 0; i < n; i++) { union ubifs_key key1, key2; + struct ubifs_ino_node *ino; + + ino = kmalloc(UBIFS_MAX_INO_NODE_SZ, GFP_NOFS); + if (!ino) + return -ENOMEM; inum = le64_to_cpu(orph->inos[i]); + ino_key_init(c, &key1, inum); + err = ubifs_tnc_lookup(c, &key1, ino); + if (!err && ino->nlink) { + kfree(ino); + continue; + } + kfree(ino); + dbg_rcvry("deleting orphaned inode %lu", (unsigned long)inum); Thanks, //richard ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/