[patch] RFC directio: partial writes support

From: Dmitry Monakhov
Date: Thu Feb 25 2010 - 07:46:13 EST


Can someone please describe me why directio deny partial writes.
For example if someone try to write 100Mb but file system has less
data it return ENOSPC in the middle of block allocation.
All allocated blocks will be truncated (it may be 100Mb -4k) end
ENOSPC will be returned. As far as i remember direct_io always act
like this, but i never asked why?
Why do we have to give up all the progress we made?
In fact partial writes are possible in case of holes, when we
fall back to buffered write. XFS implemented partial writes.

I've done trivial changes and it works like charm.
Let's enable partial writes support and allow caller to define
this behavior.