[PATCH 01/10] libxfs: readahead of dir3 data blocks should use the read verifier

Eric Sandeen sandeen at sandeen.net
Mon Aug 17 13:31:23 CDT 2015


On 8/14/15 8:43 PM, Darrick J. Wong wrote:
> In the dir3 data block readahead function, use the regular read
> verifier to check the block's CRC and spot-check the block contents
> instead of calling the spot-checking routine directly.  This prevents
> corrupted directory data blocks from being read into the kernel, which
> can lead to garbage ls output and directory loops (if say one of the
> entries contains invalid characters).
> 
> Signed-off-by: Darrick J. Wong <darrick.wong at oracle.com>
> ---
>  libxfs/xfs_dir2_data.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> 
> diff --git a/libxfs/xfs_dir2_data.c b/libxfs/xfs_dir2_data.c
> index c475ba8..466e096 100644
> --- a/libxfs/xfs_dir2_data.c
> +++ b/libxfs/xfs_dir2_data.c
> @@ -250,7 +250,8 @@ xfs_dir3_data_reada_verify(
>  		return;
>  	case cpu_to_be32(XFS_DIR2_DATA_MAGIC):
>  	case cpu_to_be32(XFS_DIR3_DATA_MAGIC):
> -		xfs_dir3_data_verify(bp);
> +		bp->b_ops = &xfs_dir3_block_buf_ops;
> +		bp->b_ops->verify_read(bp);

Shouldn't that be xfs_dir3_data_buf_ops ?

-Eric



More information about the xfs mailing list