diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-06-24 14:29:48 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-07-20 20:47:50 -0400 |
commit | 72c5052ddc3956d847f21c2b8d55c93664a51b2c (patch) | |
tree | 47b381f3f746cdc1612f432bd902278f8901f84a /fs/xfs | |
parent | aacfc19c626ebd3daa675652457d71019a1f583f (diff) | |
download | linux-3.10-72c5052ddc3956d847f21c2b8d55c93664a51b2c.tar.gz linux-3.10-72c5052ddc3956d847f21c2b8d55c93664a51b2c.tar.bz2 linux-3.10-72c5052ddc3956d847f21c2b8d55c93664a51b2c.zip |
fs: move inode_dio_done to the end_io handler
For filesystems that delay their end_io processing we should keep our
i_dio_count until the the processing is done. Enable this by moving
the inode_dio_done call to the end_io handler if one exist. Note that
the actual move to the workqueue for ext4 and XFS is not done in
this patch yet, but left to the filesystem maintainers. At least
for XFS it's not needed yet either as XFS has an internal equivalent
to i_dio_count.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 79ce38be15a..b3b418f519f 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -1339,6 +1339,9 @@ xfs_end_io_direct_write( } else { xfs_finish_ioend_sync(ioend); } + + /* XXX: probably should move into the real I/O completion handler */ + inode_dio_done(ioend->io_inode); } STATIC ssize_t |