On Sun, 2022-04-24 at 17:39 +0800, Xiubo Li wrote: > When run out of memories we should redirty the page before failing > the writepage. Or we will hit BUG_ON(folio_get_private(folio)) in > ceph_dirty_folio(). > > URL: https://tracker.ceph.com/issues/55421 > Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx> > --- > fs/ceph/addr.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c > index 261bc8bb2ab8..656bc0ca7a78 100644 > --- a/fs/ceph/addr.c > +++ b/fs/ceph/addr.c > @@ -606,8 +606,10 @@ static int writepage_nounlock(struct page *page, struct writeback_control *wbc) > CEPH_OSD_OP_WRITE, CEPH_OSD_FLAG_WRITE, snapc, > ceph_wbc.truncate_seq, ceph_wbc.truncate_size, > true); > - if (IS_ERR(req)) > + if (IS_ERR(req)) { > + redirty_page_for_writepage(wbc, page); > return PTR_ERR(req); > + } > > set_page_writeback(page); > if (caching) Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>