[PATCH] fat: support a truncate() for expanding size (generic_cont_expand)
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Sun, 8 Jan 2006 09:02:13 +0000 (01:02 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 9 Jan 2006 04:13:47 +0000 (20:13 -0800)
commit05eb0b51fb46430050d5873458612f53e0234f2e
tree88b9398079f53f29dff7533fb27487ae725983b1
parent268fc16e343b4f8e249468747db2e658da46a814
[PATCH] fat: support a truncate() for expanding size (generic_cont_expand)

This patch changes generic_cont_expand(), in order to share the code
with fatfs.

  - Use vmtruncate() if ->prepare_write() returns a error.

Even if ->prepare_write() returns an error, it may already have added some
blocks.  So, this truncates blocks outside of ->i_size by vmtruncate().

  - Add generic_cont_expand_simple().

The generic_cont_expand_simple() assumes that ->prepare_write() can handle
the block boundary.  With this, we don't need to care the extra byte.

And for expanding a file size by truncate(), fatfs uses the
added generic_cont_expand_simple().

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/buffer.c
fs/fat/file.c
include/linux/buffer_head.h