| From 3e5d3c35a68c9a933bdbdd8685bd1a205b57e806 Mon Sep 17 00:00:00 2001 |
| From: Junxiao Bi <junxiao.bi@oracle.com> |
| Date: Wed, 27 Jun 2012 17:09:55 +0800 |
| Subject: ocfs2: clear unaligned io flag when dio fails |
| |
| From: Junxiao Bi <junxiao.bi@oracle.com> |
| |
| 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> |
| |
| --- |
| fs/ocfs2/file.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- 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) |