| From 0545c01d4db6f06092a6ca9d4d341c6cd784104b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 12 Dec 2018 15:18:52 -0800 |
| Subject: xfs: require both realtime inodes to mount |
| |
| From: Darrick J. Wong <darrick.wong@oracle.com> |
| |
| [ Upstream commit 64bafd2f1e484e27071e7584642005d56516cb77 ] |
| |
| Since mkfs always formats the filesystem with the realtime bitmap and |
| summary inodes immediately after the root directory, we should expect |
| that both of them are present and loadable, even if there isn't a |
| realtime volume attached. There's no reason to skip this if rbmino == |
| NULLFSINO; in fact, this causes an immediate crash if the there /is/ a |
| realtime volume and someone writes to it. |
| |
| Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> |
| Reviewed-by: Bill O'Donnell <billodo@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/xfs/xfs_rtalloc.c | 4 +--- |
| 1 file changed, 1 insertion(+), 3 deletions(-) |
| |
| diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c |
| index 926ed314ffba1..484eb0adcefb2 100644 |
| --- a/fs/xfs/xfs_rtalloc.c |
| +++ b/fs/xfs/xfs_rtalloc.c |
| @@ -1198,13 +1198,11 @@ xfs_rtmount_inodes( |
| xfs_sb_t *sbp; |
| |
| sbp = &mp->m_sb; |
| - if (sbp->sb_rbmino == NULLFSINO) |
| - return 0; |
| error = xfs_iget(mp, NULL, sbp->sb_rbmino, 0, 0, &mp->m_rbmip); |
| if (error) |
| return error; |
| ASSERT(mp->m_rbmip != NULL); |
| - ASSERT(sbp->sb_rsumino != NULLFSINO); |
| + |
| error = xfs_iget(mp, NULL, sbp->sb_rsumino, 0, 0, &mp->m_rsumip); |
| if (error) { |
| xfs_irele(mp->m_rbmip); |
| -- |
| 2.20.1 |
| |