From: Alexaner Zarochentsev restore FIBMAP ioctl support for packed files, don't report block numbers for not yet mapped to disk nodes. Signed-off-by: Alexander Zarochentsev Cc: Hans Reiser Signed-off-by: Andrew Morton --- fs/reiser4/plugin/item/item.c | 2 +- fs/reiser4/plugin/item/tail.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff -puN fs/reiser4/plugin/item/item.c~reiser4-restore-fibmap-ioctl-support-for-packed-files fs/reiser4/plugin/item/item.c --- a/fs/reiser4/plugin/item/item.c~reiser4-restore-fibmap-ioctl-support-for-packed-files +++ a/fs/reiser4/plugin/item/item.c @@ -614,7 +614,7 @@ item_plugin item_plugins[LAST_ITEM_ID] = .write = reiser4_write_tail, .read = reiser4_read_tail, .readpage = readpage_tail, - .get_block = NULL, + .get_block = get_block_address_tail, .append_key = append_key_tail, .init_coord_extension = init_coord_extension_tail diff -puN fs/reiser4/plugin/item/tail.c~reiser4-restore-fibmap-ioctl-support-for-packed-files fs/reiser4/plugin/item/tail.c --- a/fs/reiser4/plugin/item/tail.c~reiser4-restore-fibmap-ioctl-support-for-packed-files +++ a/fs/reiser4/plugin/item/tail.c @@ -790,7 +790,13 @@ get_block_address_tail(const coord_t * c { assert("nikita-3252", znode_get_level(coord->node) == LEAF_LEVEL); - *block = *znode_get_block(coord->node); + if (reiser4_blocknr_is_fake(znode_get_block(coord->node))) + /* if node has'nt obtainet its block number yet, return 0. + * Lets avoid upsetting users with some cosmic numbers beyond + * the device capacity.*/ + *block = 0; + else + *block = *znode_get_block(coord->node); return 0; } _