summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch
new file mode 100644
index 00000000..1084fef2
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch
@@ -0,0 +1,39 @@
1From 21dbeb828448f788ffb3590cf6706c074bb1048f Mon Sep 17 00:00:00 2001
2From: Junxiao Bi <junxiao.bi@oracle.com>
3Date: Wed, 27 Jun 2012 17:09:54 +0800
4Subject: [PATCH 44/49] aio: make kiocb->private NUll in init_sync_kiocb()
5
6commit 2dfd06036ba7ae8e7be2daf5a2fff1dac42390bf upstream.
7
8Ocfs2 uses kiocb.*private as a flag of unsigned long size. In
9commit a11f7e6 ocfs2: serialize unaligned aio, the unaligned
10io flag is involved in it to serialize the unaligned aio. As
11*private is not initialized in init_sync_kiocb() of do_sync_write(),
12this unaligned io flag may be unexpectly set in an aligned dio.
13And this will cause OCFS2_I(inode)->ip_unaligned_aio decreased
14to -1 in ocfs2_dio_end_io(), thus the following unaligned dio
15will hang forever at ocfs2_aiodio_wait() in ocfs2_file_aio_write().
16
17Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
18Acked-by: Jeff Moyer <jmoyer@redhat.com>
19Signed-off-by: Joel Becker <jlbec@evilplan.org>
20Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
21---
22 include/linux/aio.h | 1 +
23 1 file changed, 1 insertion(+)
24
25diff --git a/include/linux/aio.h b/include/linux/aio.h
26index 2314ad8..b1a520e 100644
27--- a/include/linux/aio.h
28+++ b/include/linux/aio.h
29@@ -140,6 +140,7 @@ struct kiocb {
30 (x)->ki_dtor = NULL; \
31 (x)->ki_obj.tsk = tsk; \
32 (x)->ki_user_data = 0; \
33+ (x)->private = NULL; \
34 } while (0)
35
36 #define AIO_RING_MAGIC 0xa10a10a1
37--
381.7.10
39