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

Eric Sandeen
2015-08-17T18:31:29Z

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@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