Messages in this thread | | | Date | Wed, 18 Jun 2008 14:22:23 -0400 | From | Christoph Hellwig <> | Subject | Re: [patch] aio: invalidate async directio writes |
| |
On Wed, Jun 18, 2008 at 02:09:51PM -0400, Jeff Moyer wrote: > + /* For async O_DIRECT writes, we need to invalidate the > + * page cache after the write completes. Kick off a > + * workqueue to do this and issue the completion in process > + * context. > + */ > + if (dio->rw == READ) { > + int ret = dio_complete(dio, dio->iocb->ki_pos, 0); > + aio_complete(dio->iocb, ret, 0); > + kfree(dio); > + } else { > + unsigned long flags; > + spin_lock_irqsave(&iocb_completion_list_lock, flags); > + list_add(&dio->done_list, &iocb_completion_list); > + spin_unlock_irqrestore(&iocb_completion_list_lock, flags); > + schedule_work(&aio_complete_work); > + }
Can we please move all these aio_complete calls to user context? Having AIO contexts completing from irq context is a major pain for complex filesystems like XFS.
| |