ocfs2: teach extend/truncate about sparse files
authorMark Fasheh <mark.fasheh@oracle.com>
Wed, 17 Jan 2007 20:53:31 +0000 (12:53 -0800)
committerMark Fasheh <mark.fasheh@oracle.com>
Thu, 26 Apr 2007 22:01:56 +0000 (15:01 -0700)
commit3a0782d09c07aa3ec767ba6089cd15cfbfbfc508
tree4791919970e11f4b2fb3162481a59a56f5196fe4
parent363041a5f74b953ab6b705ac9c88e5eda218a24b
ocfs2: teach extend/truncate about sparse files

For ocfs2_truncate_file(), we eliminate the "simple" truncate case which no
longer exists since i_size is not tied to i_clusters. In
ocfs2_extend_file(), we skip the allocation / page zeroing code for file
systems which understand sparse files.

The core truncate code is changed to do a bottom up tree traversal. This
gets abstracted out into it's own function. To make things more readable,
most of the special case handling for in-inode extents from
ocfs2_do_truncate() is also removed.

Though write support for sparse files comes in a later patch, we at least
update ocfs2_prepare_inode_for_write() to skip allocation for sparse files.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
fs/ocfs2/alloc.c
fs/ocfs2/file.c
fs/ocfs2/inode.c