diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-08-23 10:28:10 +0200 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2011-10-12 04:15:00 +0200 |
commit | c859cdd1da008b3825555be3242908088a3de366 (patch) | |
tree | 0d5c5d22d1d10a346da81990a3c94bfabfd03904 /fs/xfs/xfs_aops.h | |
parent | xfs: remove dead ENODEV handling in xfs_destroy_ioend (diff) | |
download | linux-c859cdd1da008b3825555be3242908088a3de366.tar.xz linux-c859cdd1da008b3825555be3242908088a3de366.zip |
xfs: defer AIO/DIO completions
We really shouldn't complete AIO or DIO requests until we have finished
the unwritten extent conversion and size update. This means fsync never
has to pick up any ioends as all work has been completed when signalling
I/O completion.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_aops.h')
-rw-r--r-- | fs/xfs/xfs_aops.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/xfs/xfs_aops.h b/fs/xfs/xfs_aops.h index 71f721e1a71f..ce3dcb50762e 100644 --- a/fs/xfs/xfs_aops.h +++ b/fs/xfs/xfs_aops.h @@ -47,6 +47,7 @@ typedef struct xfs_ioend { unsigned int io_type; /* delalloc / unwritten */ int io_error; /* I/O error code */ atomic_t io_remaining; /* hold count */ + unsigned int io_isasync : 1; /* needs aio_complete */ struct inode *io_inode; /* file being written to */ struct buffer_head *io_buffer_head;/* buffer linked list head */ struct buffer_head *io_buffer_tail;/* buffer linked list tail */ |