Re: [PATCH v3 2/3] fs: direct-io: call .bi_end_io via bio_endio()
From: Christoph Hellwig
Date: Mon May 02 2016 - 10:50:12 EST
On Thu, Apr 28, 2016 at 09:09:48AM +0800, Ming Lei wrote:
> bio_endio() is the graceful way to complete one bio.
>
> Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
> ---
> fs/direct-io.c | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/fs/direct-io.c b/fs/direct-io.c
> index a8dd60a..0a35e51 100644
> --- a/fs/direct-io.c
> +++ b/fs/direct-io.c
> @@ -350,15 +350,10 @@ static void dio_bio_end_io(struct bio *bio)
> */
> void dio_end_io(struct bio *bio, int error)
> {
> - struct dio *dio = bio->bi_private;
> -
> if (!bio->bi_error)
> bio->bi_error = error;
>
> - if (dio->is_async)
> - dio_bio_end_aio(bio);
> - else
> - dio_bio_end_io(bio);
> + bio_endio(bio);
> }
> EXPORT_SYMBOL_GPL(dio_end_io);
dio_end_io is only used by btrfs. So instead of this and the previous
patch you should just open code the error assignment and call to
bio_endio in btrfs.