linux/fs/fuse
Maxim Patlasov bcba24ccdc 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 <mpatlasov@parallels.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2013-04-17 21:50:59 +02:00
..
control.c fs: Limit sys_mount to only request filesystem modules. 2013-03-03 19:36:31 -08:00
cuse.c fuse: make fuse_direct_io() aware about AIO 2013-04-17 21:50:59 +02:00
dev.c fuse: make fuse_direct_io() aware about AIO 2013-04-17 21:50:59 +02:00
dir.c
file.c fuse: enable asynchronous processing direct IO 2013-04-17 21:50:59 +02:00
fuse_i.h fuse: make fuse_direct_io() aware about AIO 2013-04-17 21:50:59 +02:00
inode.c fuse: skip blocking on allocations of synchronous requests 2013-04-17 12:31:45 +02:00
Kconfig
Makefile