Message ID | 20180119005741.32058-2-rgoldwyn@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jan 18, 2018 at 06:57:41PM -0600, Goldwyn Rodrigues wrote: > From: Goldwyn Rodrigues <rgoldwyn@suse.com> > > Since we can return less than count in case of partial direct > writes, remove the ASSERT. > > Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com> > --- > fs/xfs/xfs_file.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c > index 8601275cc5e6..8fc4dbf66910 100644 > --- a/fs/xfs/xfs_file.c > +++ b/fs/xfs/xfs_file.c > @@ -590,12 +590,6 @@ xfs_file_dio_aio_write( > ret = iomap_dio_rw(iocb, from, &xfs_iomap_ops, xfs_dio_write_end_io); > out: > xfs_iunlock(ip, iolock); > - > - /* > - * No fallback to buffered IO on errors for XFS, direct IO will either > - * complete fully or fail. > - */ > - ASSERT(ret < 0 || ret == count); > return ret; > } Acked-by: Dave Chinner <dchinner@redhat.com>
On Fri, Jan 19, 2018 at 1:57 AM, Dave Chinner <david@fromorbit.com> wrote: > > On Thu, Jan 18, 2018 at 06:57:41PM -0600, Goldwyn Rodrigues wrote: > > From: Goldwyn Rodrigues <rgoldwyn@suse.com> > > > > Since we can return less than count in case of partial direct > > writes, remove the ASSERT. > > > > Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com> > > --- > > fs/xfs/xfs_file.c | 6 ------ > > 1 file changed, 6 deletions(-) > > > > diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c > > index 8601275cc5e6..8fc4dbf66910 100644 > > --- a/fs/xfs/xfs_file.c > > +++ b/fs/xfs/xfs_file.c > > @@ -590,12 +590,6 @@ xfs_file_dio_aio_write( > > ret = iomap_dio_rw(iocb, from, &xfs_iomap_ops, xfs_dio_write_end_io); > > out: > > xfs_iunlock(ip, iolock); > > - > > - /* > > - * No fallback to buffered IO on errors for XFS, direct IO will either > > - * complete fully or fail. > > - */ > > - ASSERT(ret < 0 || ret == count); > > return ret; > > } > > Acked-by: Dave Chinner <dchinner@redhat.com> Is this really correct? Isn't this check with regards to DIO submission? The bytes written is returned in a different asynchronous path due to AIO support, no?! > > > -- > Dave Chinner > david@fromorbit.com Regards, Raphael S. Carvalho
On Fri, Jan 19, 2018 at 02:23:16AM -0200, Raphael Carvalho wrote: > On Fri, Jan 19, 2018 at 1:57 AM, Dave Chinner <david@fromorbit.com> wrote: > > > > On Thu, Jan 18, 2018 at 06:57:41PM -0600, Goldwyn Rodrigues wrote: > > > From: Goldwyn Rodrigues <rgoldwyn@suse.com> > > > > > > Since we can return less than count in case of partial direct > > > writes, remove the ASSERT. > > > > > > Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com> > > > --- > > > fs/xfs/xfs_file.c | 6 ------ > > > 1 file changed, 6 deletions(-) > > > > > > diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c > > > index 8601275cc5e6..8fc4dbf66910 100644 > > > --- a/fs/xfs/xfs_file.c > > > +++ b/fs/xfs/xfs_file.c > > > @@ -590,12 +590,6 @@ xfs_file_dio_aio_write( > > > ret = iomap_dio_rw(iocb, from, &xfs_iomap_ops, xfs_dio_write_end_io); > > > out: > > > xfs_iunlock(ip, iolock); > > > - > > > - /* > > > - * No fallback to buffered IO on errors for XFS, direct IO will either > > > - * complete fully or fail. > > > - */ > > > - ASSERT(ret < 0 || ret == count); > > > return ret; > > > } > > > > Acked-by: Dave Chinner <dchinner@redhat.com> > > > Is this really correct? Yes. > Isn't this check with regards to DIO > submission? Yes, if there is an error during submission. But it also checked synchronous IO completion (i.e. error or bytes written), because iomap_dio_rw() waits for non-AIO DIO to complete and returns the IO completion status in that case. > The bytes written is returned in a different asynchronous > path due to AIO support, no?! That is correct. For AIO we'll get -EIOCBQUEUED here on successful submission. Cheers, Dave.
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 8601275cc5e6..8fc4dbf66910 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -590,12 +590,6 @@ xfs_file_dio_aio_write( ret = iomap_dio_rw(iocb, from, &xfs_iomap_ops, xfs_dio_write_end_io); out: xfs_iunlock(ip, iolock); - - /* - * No fallback to buffered IO on errors for XFS, direct IO will either - * complete fully or fail. - */ - ASSERT(ret < 0 || ret == count); return ret; }