Hello On Monday 18 September 2006 01:20, Pawel Jagoda wrote: > > Hello > > > > On Saturday 16 September 2006 16:25, Pawel Jagoda wrote: > >> Hello. > >> > >> I've backup my data - one file, which have 4060 MB. Unfortunetly I > >> didn't > >> point out that my destination file system is in old 3.5.x version. And > >> of > >> course I cannot read my data after 2GB (it says: Input/Output Error). I > >> have converted my filesystem into 3.6.x, but still I'm not able to read > >> this file. But if I create new file (for example: dd if=/dev/zero > >> of=/mnt/hda3/some_file bs=1M count=3000), there is no problem to read > >> it. > >> Is it possible, to do something to restore my backup from this file? If > >> yes, then how can I do it? > >> > > > > Which kernel did you use? > > > > 2.6.14.7 > >
Please try whether the attached patch helps. diff -puN fs/reiserfs/inode.c~reiserfs-debug-read fs/reiserfs/inode.c diff -puN fs/reiserfs/inode.c~reiserfs-read-4gb-files fs/reiserfs/inode.c --- linux-2.6.14.7/fs/reiserfs/inode.c~reiserfs-read-4gb-files 2006-09-19 01:41:46.000000000 +0400 +++ linux-2.6.14.7-vs/fs/reiserfs/inode.c 2006-09-19 01:41:46.000000000 +0400 @@ -206,7 +206,7 @@ static inline void set_block_dev_mapped( static int file_capable(struct inode *inode, long block) { if (get_inode_item_key_version(inode) != KEY_FORMAT_3_5 || // it is new file. - block < (1 << (31 - inode->i_sb->s_blocksize_bits))) // old file, but 'block' is inside of 2gb + block < (1 << (32 - inode->i_sb->s_blocksize_bits))) // old file, but 'block' is inside of 2gb return 1; return 0; _