summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunxiao Bi <junxiao.bi@oracle.com>2012-06-27 17:09:55 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-16 09:04:24 -0700
commit47e38c598d1a3bf7d01c540c46d2039708337622 (patch)
tree15da175bffe684b17ba0dccda3966d0760fdb6a3
parentf632881de16f8c3133cd1b0866937f50fa2e9156 (diff)
downloadlwn-47e38c598d1a3bf7d01c540c46d2039708337622.tar.gz
lwn-47e38c598d1a3bf7d01c540c46d2039708337622.zip
ocfs2: clear unaligned io flag when dio fails
commit 3e5d3c35a68c9a933bdbdd8685bd1a205b57e806 upstream. 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> Signed-off-by: Joel Becker <jlbec@evilplan.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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)