xfs
[Top] [All Lists]

Re: [PATCH 1/3] direct-io: always call ->end_io if non-NULL

To: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx>
Subject: Re: [PATCH 1/3] direct-io: always call ->end_io if non-NULL
From: Christoph Hellwig <hch@xxxxxx>
Date: Wed, 3 Feb 2016 16:48:16 +0100
Cc: linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, ocfs2-devel@xxxxxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20160203000510.GB5854@xxxxxxxxxxxxxxxx>
References: <1454444257-9086-1-git-send-email-hch@xxxxxx> <1454444257-9086-2-git-send-email-hch@xxxxxx> <20160203000510.GB5854@xxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.17 (2007-11-01)
> > -   if (dio->end_io && dio->result)
> > -           dio->end_io(dio->iocb, offset, transferred, dio->private);
> > +   if (dio->end_io)
> > +           dio->end_io(dio->iocb, offset, ret, dio->private);
> 
> Could we make end_io return an int so that errors during completion can be
> stuffed into ret to be picked up by whatever's calling directio?  Something
> like this:
> 
> if (dio->end_io) {
>       int ret2;
> 
>       ret2 = dio->end_io(dio->iocb, offset, ret, dio->private);
>       if (ret2 && !ret)
>               ret = ret2;
> }
> 
> That way I can capture IO errors during the CoW remapping step and pass them 
> to
> userland either via dio_complete()'s return value or through ki_complete.
> 
> (If ret itself is an error code then obviously we don't bother with the
> post-CoW remap.)

Should be doable, I'll respin it with that change.

<Prev in Thread] Current Thread [Next in Thread>