On Tue, 10 May 2022 14:58:05 +0800 Miaohe Lin <linmiaohe@xxxxxxxxxx> wrote: > >> Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> > >> Acked-by: David Hildenbrand <david@xxxxxxxxxx> > > > > When I reproduced the issue (generated read error with dm-dust), I saw > > infinite loop in the while loop in shmem_unuse_inode() (and this happens > > even with this patch). I confirmed that shmem_swapin_page() returns -EIO, > > but shmem_unuse_swap_entries() does not return the error to the callers, > > so the while loop in shmem_unuse_inode() seems not break. > > > > Many thanks for your report! I didn't test the shmem case because I saw -EIO > is returned. So I just focus on the normal page case. Sorry about it. :( > > > So maybe you need more code around shmem_unuse_inode() to handle the error? > > I will try to reproduce it and come up a fixup patch asap! And if you like, you > can kindly solve this issue too. ;) Seems that this patch didn't cause the infinite loop, so as far as I can tell it is good to be merged up. But the problem it solves isn't urgent and fixing that infinite loop might impact this change so I think I'll drop this version.