On Wed, Feb 10, 2016 at 08:48:50AM +1100, Dave Chinner wrote:
> On Tue, Feb 09, 2016 at 05:39:41AM -0800, Christoph Hellwig wrote:
> > > - if (!ioend || need_ioend || type != ioend->io_type) {
> > > - xfs_ioend_t *previous = *result;
> > > -
> > > - ioend = xfs_alloc_ioend(inode, type);
> > > - ioend->io_offset = offset;
> > > - ioend->io_buffer_head = bh;
> > > - ioend->io_buffer_tail = bh;
> > > - if (previous)
> > > - previous->io_list = ioend;
> > > - *result = ioend;
> > > + if (!wpc->ioend || wpc->io_type != wpc->ioend->io_type ||
> > > + bh->b_blocknr != wpc->last_block + 1) {
> >
> > We now start a new ioend if the blocks aren't contiguous, which seems
> > reasonable. But this also means the similar check in xfs_submit_ioend
> > should be removed at the same time.
>
> OK.
On second thoughts, I have another patch I haven't posted yet that
builds bios directly in xfs_add_to_ioend() that gets rid of the
buffer head chain walk during submission, so I'll leave changing the
submission code to that patch rather than changing here...
Cheers,
Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
|