xfs: require both realtime inodes to mount
PATCH 1/1 xfs: require both realtime inodes to mount
From: Darrick J. Wong <[email protected]>
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.
--- fs/xfs/xfs_rtalloc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
fs/xfs/xfs_rtalloc.c +1 -3
@@ -1206,13 +1206,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);
Quoted 11 lines · Darrick J. Wong
From: Darrick J. Wong <[email protected]>
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 <[email protected]>---
Looks fine.
Quoted 22 lines
fs/xfs/xfs_rtalloc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)fs/xfs/xfs_rtalloc.c +1
-3@@ -1206,13 +1206,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);