|
@@ -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.
|