diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 5cb7e771b57a..e01b6a2d12d3 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -1416,6 +1416,14 @@ static void gfs2_evict_inode(struct inode *inode) if (inode->i_nlink || sb_rdonly(sb)) goto out; + /* + * In case of an incomplete mount, gfs2_evict_inode() may be called for + * system files without having an active journal to write to. In that + * case, skip the filesystem evict. + */ + if (!sdp->sd_jdesc) + goto out; + gfs2_holder_mark_uninitialized(&gh); ret = evict_should_delete(inode, &gh); if (ret == SHOULD_DEFER_EVICTION)