xfs: create a separate finobt verifier
The inobt verifier is reused for the inobt and finobt, which prevents the ability to distinguish between magic values on a per-tree basis. Create a separate finobt structure in preparation for changes to enforce the appropriate magic value for the associated tree. This patch has no functional change. Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
		
							parent
							
								
									e34d3e74eb
								
							
						
					
					
						commit
						01e68f40bf
					
				| @ -361,7 +361,7 @@ xfs_ag_init_headers( | ||||
| 	{ /* FINO root block */ | ||||
| 		.daddr = XFS_AGB_TO_DADDR(mp, id->agno, XFS_FIBT_BLOCK(mp)), | ||||
| 		.numblks = BTOBB(mp->m_sb.sb_blocksize), | ||||
| 		.ops = &xfs_inobt_buf_ops, | ||||
| 		.ops = &xfs_finobt_buf_ops, | ||||
| 		.work = &xfs_btroot_init, | ||||
| 		.type = XFS_BTNUM_FINO, | ||||
| 		.need_init =  xfs_sb_version_hasfinobt(&mp->m_sb) | ||||
|  | ||||
| @ -333,6 +333,13 @@ const struct xfs_buf_ops xfs_inobt_buf_ops = { | ||||
| 	.verify_struct = xfs_inobt_verify, | ||||
| }; | ||||
| 
 | ||||
| const struct xfs_buf_ops xfs_finobt_buf_ops = { | ||||
| 	.name = "xfs_finobt", | ||||
| 	.verify_read = xfs_inobt_read_verify, | ||||
| 	.verify_write = xfs_inobt_write_verify, | ||||
| 	.verify_struct = xfs_inobt_verify, | ||||
| }; | ||||
| 
 | ||||
| STATIC int | ||||
| xfs_inobt_keys_inorder( | ||||
| 	struct xfs_btree_cur	*cur, | ||||
| @ -389,7 +396,7 @@ static const struct xfs_btree_ops xfs_finobt_ops = { | ||||
| 	.init_rec_from_cur	= xfs_inobt_init_rec_from_cur, | ||||
| 	.init_ptr_from_cur	= xfs_finobt_init_ptr_from_cur, | ||||
| 	.key_diff		= xfs_inobt_key_diff, | ||||
| 	.buf_ops		= &xfs_inobt_buf_ops, | ||||
| 	.buf_ops		= &xfs_finobt_buf_ops, | ||||
| 	.diff_two_keys		= xfs_inobt_diff_two_keys, | ||||
| 	.keys_inorder		= xfs_inobt_keys_inorder, | ||||
| 	.recs_inorder		= xfs_inobt_recs_inorder, | ||||
|  | ||||
| @ -36,6 +36,7 @@ extern const struct xfs_buf_ops xfs_dquot_buf_ops; | ||||
| extern const struct xfs_buf_ops xfs_symlink_buf_ops; | ||||
| extern const struct xfs_buf_ops xfs_agi_buf_ops; | ||||
| extern const struct xfs_buf_ops xfs_inobt_buf_ops; | ||||
| extern const struct xfs_buf_ops xfs_finobt_buf_ops; | ||||
| extern const struct xfs_buf_ops xfs_inode_buf_ops; | ||||
| extern const struct xfs_buf_ops xfs_inode_buf_ra_ops; | ||||
| extern const struct xfs_buf_ops xfs_dquot_buf_ops; | ||||
|  | ||||
| @ -879,7 +879,7 @@ xrep_agi( | ||||
| 		}, | ||||
| 		[XREP_AGI_FINOBT] = { | ||||
| 			.rmap_owner = XFS_RMAP_OWN_INOBT, | ||||
| 			.buf_ops = &xfs_inobt_buf_ops, | ||||
| 			.buf_ops = &xfs_finobt_buf_ops, | ||||
| 			.magic = XFS_FIBT_CRC_MAGIC, | ||||
| 		}, | ||||
| 		[XREP_AGI_END] = { | ||||
|  | ||||
| @ -2445,11 +2445,13 @@ xlog_recover_validate_buf_type( | ||||
| 			bp->b_ops = &xfs_allocbt_buf_ops; | ||||
| 			break; | ||||
| 		case XFS_IBT_CRC_MAGIC: | ||||
| 		case XFS_FIBT_CRC_MAGIC: | ||||
| 		case XFS_IBT_MAGIC: | ||||
| 		case XFS_FIBT_MAGIC: | ||||
| 			bp->b_ops = &xfs_inobt_buf_ops; | ||||
| 			break; | ||||
| 		case XFS_FIBT_CRC_MAGIC: | ||||
| 		case XFS_FIBT_MAGIC: | ||||
| 			bp->b_ops = &xfs_finobt_buf_ops; | ||||
| 			break; | ||||
| 		case XFS_BMAP_CRC_MAGIC: | ||||
| 		case XFS_BMAP_MAGIC: | ||||
| 			bp->b_ops = &xfs_bmbt_buf_ops; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user