| 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> |
|---|---|---|
| ||
| Previous by Date: | Re: Request for information on bloated writes using Swift, Eric Sandeen |
|---|---|
| Next by Date: | Re: Request for information on bloated writes using Swift, Dilip Simha |
| Previous by Thread: | Re: [PATCH 1/3] direct-io: always call ->end_io if non-NULL, Darrick J. Wong |
| Next by Thread: | [PATCH 3/3] xfs: fold xfs_vm_do_dio into xfs_vm_direct_IO, Christoph Hellwig |
| Indexes: | [Date] [Thread] [Top] [All Lists] |