reiser4: fix extent2tail
PATCH 1/3 reiser4: fix extent2tail
Fixed bug in extent2tail conversion.
Bug description:
when converting partially converted file (with flag REISER4_PART_MIXED installed) reiser4_cut_tree() starts to cut old metatada from wrong offset. Result is data corruption.
Signed-off-by Edward Shishkin <[email protected]>
--- linux-2.6.22-rc6-mm1/fs/reiser4/plugin/file/file.c | 7 ------- linux-2.6.22-rc6-mm1/fs/reiser4/plugin/file/tail_conversion.c | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-)
fs/reiser4/plugin/file/file.c renamed from fs/reiser4/plugin/file/file.c.orig +0 -7
@@ -194,13 +194,6 @@assert ("vs-1164" , level ==LEAF_LEVEL || level ==TWIG_LEVEL );if (uf_info->container ==UF_CONTAINER_UNKNOWN ) { -/* -* container is unknown, therefore conversion can not be in -* progress -*/ -assert ("" , - !reiser4_inode_get_flag (unix_file_info_to_inode (uf_info), -REISER4_PART_IN_CONV ));if (cbk_result ==CBK_COORD_NOTFOUND ) uf_info->container =UF_CONTAINER_EMPTY ;else if (level ==LEAF_LEVEL )
fs/reiser4/plugin/file/tail_conversion.c renamed from fs/reiser4/plugin/file/tail_conversion.c.orig +1 -1
@@ -620,7 +620,7 @@ }/* cut part of file we have read */ - start_byte = (__u64) (i <<PAGE_CACHE_SHIFT ); + start_byte = (__u64) ((i + start_page) <<PAGE_CACHE_SHIFT );set_key_offset (&from, start_byte);set_key_offset (&to, start_byte +PAGE_CACHE_SIZE -1 );/*