> Looking at reiserfs code in the current 2.6 kernel it does:
>
> .bmap = reiserfs_aop_bmap,
>
> Which is:
>
> static sector_t reiserfs_aop_bmap(struct address_space *as, sector_t
> block) {
> return generic_block_bmap(as, block, reiserfs_bmap) ;
> }
>
> And generic_block_bmap is:
>
> sector_t generic_block_bmap(struct address_space *mapping, sector_t
> block,
> get_block_t *get_block)
> {
> struct buffer_head tmp;
> struct inode *inode = mapping->host;
> tmp.b_state = 0;
> tmp.b_blocknr = 0;
> get_block(inode, block, &tmp, 0);
> return tmp.b_blocknr;
> }
>
> It ignores any errors from get_block() and always returns tmp.b_blocknr.
> Thus is get_block() fails, tmp.b_blocknr is 0 and hence 0 is returned,
> i.e. a sparse block. Which is complete rubbish...
>
> And get_block in this case in reiserfs is:
>
> static int reiserfs_bmap (struct inode * inode, sector_t block,
> struct buffer_head * bh_result, int create)
> {
> if (!file_capable (inode, block))
> return -EFBIG;
>
> reiserfs_write_lock(inode->i_sb);
> /* do not read the direct item */
> _get_block_create_0 (inode, block, bh_result, 0) ;
> reiserfs_write_unlock(inode->i_sb);
> return 0;
> }
Just wondering. Say, reiserfs/r4, how is it possible to access
the tail which contain the data of the file, since most of our
production boxes uses either reiserfs and/or reiser4.
Kathy
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html