Hi Richard, Could you CC this patch to stable? It fixes a serious problem that I am seeing on real devices (i.e. Linux not being able to mount its root filesystem after a power cut). Thanks. John Ogness On 2020-01-19, Richard Weinberger <richard@xxxxxx> wrote: > Orphans are allowed to point to deleted inodes. > So -ENOENT is not a fatal error. > > Reported-by: Кочетков Максим <fido_max@xxxxxxxx> > Reported-and-tested-by: "Christian Berger" <Christian.Berger@xxxxxxxxxxxx> > Fixes: ee1438ce5dc4 ("ubifs: Check link count of inodes when killing orphans.") > Signed-off-by: Richard Weinberger <richard@xxxxxx> > --- > fs/ubifs/orphan.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/ubifs/orphan.c b/fs/ubifs/orphan.c > index 54d6db61106f..2645917360b9 100644 > --- a/fs/ubifs/orphan.c > +++ b/fs/ubifs/orphan.c > @@ -688,14 +688,14 @@ static int do_kill_orphans(struct ubifs_info *c, struct ubifs_scan_leb *sleb, > > ino_key_init(c, &key1, inum); > err = ubifs_tnc_lookup(c, &key1, ino); > - if (err) > + if (err && err != -ENOENT) > goto out_free; > > /* > * Check whether an inode can really get deleted. > * linkat() with O_TMPFILE allows rebirth of an inode. > */ > - if (ino->nlink == 0) { > + if (err == 0 && ino->nlink == 0) { > dbg_rcvry("deleting orphaned inode %lu", > (unsigned long)inum); ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/