ocfs2: clear unaligned io flag when dio fails
authorJunxiao Bi <junxiao.bi@oracle.com>
Wed, 27 Jun 2012 09:09:55 +0000 (17:09 +0800)
committerJoel Becker <jlbec@evilplan.org>
Wed, 4 Jul 2012 06:26:50 +0000 (23:26 -0700)
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>
fs/ocfs2/file.c

index 061591a3ab08a673d73544e819e7b7fd19b2689a..98513c8ed589f775f94c91259fa87ea5d364f2d0 100644 (file)
@@ -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)