diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-03-19 21:01:03 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-04-09 14:12:55 -0400 |
commit | 8d71db4f0890605d44815a2b2da4ca003f1bb142 (patch) | |
tree | e5bb078717c3e8ace7f032b940ada7901dbab545 /fs/aio.c | |
parent | 5f2e354f5212a49fc639c25de2581cc8ae90d11b (diff) | |
download | lwn-8d71db4f0890605d44815a2b2da4ca003f1bb142.tar.gz lwn-8d71db4f0890605d44815a2b2da4ca003f1bb142.zip |
lift sb_start_write/sb_end_write out of ->aio_write()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/aio.c')
-rw-r--r-- | fs/aio.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1324,6 +1324,8 @@ static ssize_t aio_rw_vect_retry(struct kiocb *iocb) if (iocb->ki_pos < 0) return -EINVAL; + if (opcode == IOCB_CMD_PWRITEV) + file_start_write(file); do { ret = rw_op(iocb, &iocb->ki_iovec[iocb->ki_cur_seg], iocb->ki_nr_segs - iocb->ki_cur_seg, @@ -1336,6 +1338,8 @@ static ssize_t aio_rw_vect_retry(struct kiocb *iocb) } while (ret > 0 && iocb->ki_left > 0 && (opcode == IOCB_CMD_PWRITEV || (!S_ISFIFO(inode->i_mode) && !S_ISSOCK(inode->i_mode)))); + if (opcode == IOCB_CMD_PWRITEV) + file_end_write(file); /* This means we must have transferred all that we could */ /* No need to retry anymore */ |