stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] aio: make kiocb->private NUll in init_sync_kiocb()
@ 2012-05-31  4:12 Junxiao Bi
  2012-05-31  4:12 ` [PATCH 2/2] ocfs2: clear unaligned io flag when dio fails Junxiao Bi
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Junxiao Bi @ 2012-05-31  4:12 UTC (permalink / raw)
  To: ocfs2-devel, linux-aio
  Cc: mfasheh, jlbec, bcrl, linux-kernel, stable, joe.jin, Junxiao Bi

Ocfs2 uses kiocb.*private as a flag of unsigned long size. In
commit a11f7e6 ocfs2: serialize unaligned aio, the unaligned
io flag is involved in it to serialize the unaligned aio. As
*private is not initialized in init_sync_kiocb() of do_sync_write(),
this unaligned io flag may be unexpectly set in an aligned dio.
And this will cause OCFS2_I(inode)->ip_unaligned_aio decreased
to -1 in ocfs2_dio_end_io(), thus the following unaligned dio
will hang forever at ocfs2_aiodio_wait() in ocfs2_file_write_iter().

We can't initialized this flag in ocfs2_file_write_iter() since
it may be invoked several times by do_sync_write(). So we initialize
it in init_sync_kiocb(), it's also useful for other similiar use of
it in the future.

Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
---
 include/linux/aio.h |    1 +
 1 file changed, 1 insertion(+)

diff --git a/include/linux/aio.h b/include/linux/aio.h
index 2314ad8..b1a520e 100644
--- a/include/linux/aio.h
+++ b/include/linux/aio.h
@@ -140,6 +140,7 @@ struct kiocb {
 		(x)->ki_dtor = NULL;			\
 		(x)->ki_obj.tsk = tsk;			\
 		(x)->ki_user_data = 0;                  \
+		(x)->private = NULL;			\
 	} while (0)
 
 #define AIO_RING_MAGIC			0xa10a10a1
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2012-06-02  2:59 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-31  4:12 [PATCH 1/2] aio: make kiocb->private NUll in init_sync_kiocb() Junxiao Bi
2012-05-31  4:12 ` [PATCH 2/2] ocfs2: clear unaligned io flag when dio fails Junxiao Bi
2012-05-31  4:36   ` Joe Jin
2012-05-31 14:09   ` Jeff Moyer
2012-06-01  1:44     ` Junxiao Bi
2012-05-31  4:36 ` [PATCH 1/2] aio: make kiocb->private NUll in init_sync_kiocb() Joe Jin
2012-05-31 14:08 ` Jeff Moyer
2012-06-01  1:41   ` Junxiao Bi
2012-06-01 20:55     ` Jeff Moyer
2012-06-02  2:59       ` Junxiao Bi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).