Re: [PATCH v2] btrfs: Correct assignment of pos

From: David Sterba
Date: Fri Jul 07 2017 - 12:19:44 EST


On Tue, Jul 04, 2017 at 10:33:07PM -0500, Goldwyn Rodrigues wrote:
> From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
>
> Assigning pos for usage early messes up in append mode, where
> the pos is re-assigned in generic_write_checks(). Assign
> pos later to get the correct position to write from iocb->ki_pos.
>
> Since check_can_nocow also uses the value of pos, we shift
> generic_write_checks() before check_can_nocow(). Checks with
> IOCB_DIRECT are present in generic_write_checks(), so checking
> for IOCB_NOWAIT is enough.
>
> Also, put locking sequence in the fast path.
>
> Changes since v1:
> - Moved pos higher up to encompass check_can_nocow() call.
>
> Fixes: edf064e7c6fe ("btrfs: nowait aio support")
> Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>

Acked-by: David Sterba <dsterba@xxxxxxxx>