public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH][2.6-mm] Fix AIO and 4G-4G hang
@ 2003-10-09  5:34 Suparna Bhattacharya
  0 siblings, 0 replies; only message in thread
From: Suparna Bhattacharya @ 2003-10-09  5:34 UTC (permalink / raw)
  To: akpm; +Cc: mingo, linux-kernel, linux-aio

This patch appears to fix the hangs seen with AIO and 
4G-4G for me. It ensures that the indirect versions of
copy_xxx_user are used during aio retries running in
worker thread context (i.e. access aio issuer's user-space 
instead of kernel-space).

Regards
Suparna
-- 
Suparna Bhattacharya (suparna@in.ibm.com)
Linux Technology Center
IBM Software Labs, India

-------------------------------------------------------
diffstat aio-4g4g-fix.patch

 aio.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

--- 260t5mm2/fs/aio.c	Fri Sep 19 15:15:39 2003
+++ linux-2.6.0-test5-mm4/fs/aio.c	Tue Oct  7 23:40:22 2003
@@ -805,18 +814,23 @@ static inline void aio_run_iocbs(struct 
  * aio_kick_handler:
  * 	Work queue handler triggered to process pending
  * 	retries on an ioctx. Takes on the aio issuer's
- * 	mm context before running the iocbs.
+ * 	mm context before running the iocbs, so that
+ * 	copy_xxx_user operates on the issuer's address
+ * 	space.
  * Run on aiod's context.
  */
 static void aio_kick_handler(void *data)
 {
 	struct kioctx *ctx = data;
+	mm_segment_t oldfs = get_fs();
 
+	set_fs(USER_DS);
 	use_mm(ctx->mm);
 	spin_lock_irq(&ctx->ctx_lock);
 	__aio_run_iocbs(ctx);
 	unuse_mm(ctx->mm);
 	spin_unlock_irq(&ctx->ctx_lock);
+	set_fs(oldfs);
 }
 
 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-10-09  5:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-10-09  5:34 [PATCH][2.6-mm] Fix AIO and 4G-4G hang Suparna Bhattacharya

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox