On Fri, Jun 07, 2013 at 10:24:55PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
>
> Reading a maximally size remote attribute fails when CRCs are
> enabled with this verification error:
>
> XFS (vdb): remote attribute header does not match required off/len/owner)
>
> There are two reasons for this, the first being that the
> length of the buffer being read is determined from the
> args->rmtblkcnt which doesn't take into account CRC headers. Hence
> the mapped length ends up being too short and so we need to
> calculate it directly from the value length.
>
> The second is that the byte count of valid data within a buffer is
> capped by the length of the data and so doesn't take into account
> that the buffer might be longer due to headers. Hence we need to
> calculate the data space in the buffer first before calculating the
> actual byte count of data.
>
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Goes with commit 551b382f5368900d6d82983505cb52553c946a2b
Reviewed-by: Ben Myers <bpm@xxxxxxx>
|