summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJunxiao Bi <junxiao.bi@oracle.com>2012-06-27 17:09:55 +0800
committerJoel Becker <jlbec@evilplan.org>2012-07-03 23:26:50 -0700
commit3e5d3c35a68c9a933bdbdd8685bd1a205b57e806 (patch)
treeb84d21201792d9aa31a3bd2ef142d95e739f59d4 /fs
parent9e85a6f9dc231f3ed3c1dc1b12217505d970142a (diff)
downloadlinux-stable-3e5d3c35a68c9a933bdbdd8685bd1a205b57e806.tar.gz
linux-stable-3e5d3c35a68c9a933bdbdd8685bd1a205b57e806.tar.bz2
linux-stable-3e5d3c35a68c9a933bdbdd8685bd1a205b57e806.zip
ocfs2: clear unaligned io flag when dio fails
The unaligned io flag is set in the kiocb when an unaligned dio is issued, it should be cleared even when the dio fails, or it may affect the following io which are using the same kiocb. Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com> Cc: stable@vger.kernel.org Signed-off-by: Joel Becker <jlbec@evilplan.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/ocfs2/file.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 061591a3ab08..98513c8ed589 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -2422,8 +2422,10 @@ out_dio:
unaligned_dio = 0;
}
- if (unaligned_dio)
+ if (unaligned_dio) {
+ ocfs2_iocb_clear_unaligned_aio(iocb);
atomic_dec(&OCFS2_I(inode)->ip_unaligned_aio);
+ }
out:
if (rw_level != -1)