UDF: Add support for O_DIRECT
authorIan Abbott <abbotti@mev.co.uk>
Wed, 5 Sep 2012 16:44:31 +0000 (17:44 +0100)
committerJan Kara <jack@suse.cz>
Thu, 6 Sep 2012 14:20:39 +0000 (16:20 +0200)
commit5eec54fcde7e065eb3d8a6e70e61d90673ca706b
treeb5946eb5ad36a2121334e38a1ccf417fa8babd14
parent3f6bba823767e3c78efcf1bea5b6fdf98ad80e3b
UDF: Add support for O_DIRECT

Add support for the O_DIRECT flag.  There are two cases to deal with:

1. Small files stored in the ICB (inode control block?): just return 0
from the new udf_adinicb_direct_IO() handler to fall back to buffered
I/O.

2. Larger files, not stored in the ICB: nothing special here.  Just call
blockdev_direct_IO() from our new udf_direct_IO() handler and tidy up
any blocks instantiated outside i_size on error.  This is pretty
standard.  Factor error handling code out of udf_write_begin() into new
function udf_write_failed() so it can also be called by udf_direct_IO().

Also change the whitespace in udf_aops to make it a bit neater.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Jan Kara <jack@suse.cz>
arch/um/os-Linux/time.c
fs/udf/file.c
fs/udf/inode.c