From: Maxim Patlasov Date: Fri, 14 Dec 2012 15:21:08 +0000 (+0400) Subject: fuse: enable asynchronous processing direct IO X-Git-Tag: omap-for-v3.10/dt-fixes-for-merge-window~12^2~3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bcba24ccdc82f7415154cf87226c2577cea13a5c;p=pandora-kernel.git fuse: enable asynchronous processing direct IO In case of synchronous DIO request (i.e. read(2) or write(2) for a file opened with O_DIRECT), the patch submits fuse requests asynchronously, but waits for their completions before return from fuse_direct_IO(). In case of asynchronous DIO request (i.e. libaio io_submit() or a file opened with O_DIRECT), the patch submits fuse requests asynchronously and return -EIOCBQUEUED immediately. The only special case is async DIO extending file. Here the patch falls back to old behaviour because we can't return -EIOCBQUEUED and update i_size later, without i_mutex hold. And we have no method to wait on real async I/O requests. The patch also clean __fuse_direct_write() up: it's better to update i_size in its callers. Thanks Brian for suggestion. Signed-off-by: Maxim Patlasov Signed-off-by: Miklos Szeredi --- Reading git-diff-tree failed