From: Christoph Hellwig Date: Mon, 7 Jun 2010 07:29:20 +0000 (+0200) Subject: update documentation for the new truncate sequence X-Git-Tag: v2.6.36-rc1~304^2~79 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=1e2317350971c8b01e6adddc798a00e9bcc1a440;p=karo-tx-linux.git update documentation for the new truncate sequence Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro --- diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index a7e9746ee7ea..f9547a5c187b 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting @@ -273,3 +273,21 @@ it's safe to remove it. If you don't need it, remove it. deliberate; as soon as struct block_device * is propagated in a reasonable way by that code fixing will become trivial; until then nothing can be done. + +[mandatory] + + block truncatation on error exit from ->write_begin, and ->direct_IO +moved from generic methods (block_write_begin, cont_write_begin, +nobh_write_begin, blockdev_direct_IO*) to callers. Take a look at +ext2_write_failed and callers for an example. + +[mandatory] + + ->truncate is going away. The whole truncate sequence needs to be +implemented in ->setattr, which is now mandatory for filesystems +implementing on-disk size changes. Start with a copy of the old inode_setattr +and vmtruncate, and the reorder the vmtruncate + foofs_vmtruncate sequence to +be in order of zeroing blocks using block_truncate_page or similar helpers, +size update and on finally on-disk truncation which should not fail. +inode_change_ok now includes the size checks for ATTR_SIZE and must be called +in the beginning of ->setattr unconditionally.