xfs: DIO needs an ioend for writes
authorDave Chinner <dchinner@redhat.com>
Thu, 16 Apr 2015 11:59:07 +0000 (21:59 +1000)
committerDave Chinner <david@fromorbit.com>
Thu, 16 Apr 2015 11:59:07 +0000 (21:59 +1000)
commitd5cc2e3f968ff60f247fdef15b04fac788ef46d2
tree3fc9395d93bea2bddacdea465bef3fda76352a0a
parent1fdca9c21198b2c2869086ac3629612492476f28
xfs: DIO needs an ioend for writes

Currently we can only tell DIO completion that an IO requires
unwritten extent completion. This is done by a hacky non-null
private pointer passed to Io completion, but the private pointer
does not actually contain any information that is used.

We also need to pass to IO completion the fact that the IO may be
beyond EOF and so a size update transaction needs to be done. This
is currently determined by checks in the io completion, but we need
to determine if this is necessary at block mapping time as we need
to defer the size update transactions to a completion workqueue,
just like unwritten extent conversion.

To do this, first we need to allocate and pass an ioend to to IO
completion. Add this for unwritten extent conversion; we'll do the
EOF updates in the next commit.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_aops.c
fs/xfs/xfs_trace.h