diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c index 797931eb5845..005584311eff 100644 --- a/fs/gfs2/lops.c +++ b/fs/gfs2/lops.c @@ -467,6 +467,9 @@ static void gfs2_jhead_process_page(struct gfs2_jdesc *jd, unsigned long index, folio = filemap_get_folio(jd->jd_inode->i_mapping, index); + if (IS_ERR(folio)) + return; + folio_wait_locked(folio); if (!folio_test_uptodate(folio)) *done = true; diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index b44adb40635d..4cff08fa3b50 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -1315,6 +1315,7 @@ static int gfs2_fill_super(struct super_block *sb, struct fs_context *fc) gfs2_sys_fs_del(sdp); fail_bufdata: kmem_cache_destroy(sdp->sd_bufdata); + sdp->sd_bufdata = NULL; fail_delete_wq: destroy_workqueue(sdp->sd_delete_wq); fail_glock_wq: