Theodore Ts'o wrote: > The function ext4_mb_free_blocks() was using an "unsigned long" to > pass a block number; this will cause 64-bit block numbers to get > truncated on x86 and other 32-bit platforms. > > Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> Yup, good catch. Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > fs/ext4/ext4.h | 2 +- > fs/ext4/mballoc.c | 8 ++++---- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > index 746cdcb..17b9998 100644 > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -1341,7 +1341,7 @@ extern void ext4_discard_preallocations(struct inode *); > extern int __init init_ext4_mballoc(void); > extern void exit_ext4_mballoc(void); > extern void ext4_mb_free_blocks(handle_t *, struct inode *, > - unsigned long, unsigned long, int, unsigned long *); > + ext4_fsblk_t, unsigned long, int, unsigned long *); > extern int ext4_mb_add_groupinfo(struct super_block *sb, > ext4_group_t i, struct ext4_group_desc *desc); > extern void ext4_mb_update_group_info(struct ext4_group_info *grp, > diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c > index 8d98070..519a0a6 100644 > --- a/fs/ext4/mballoc.c > +++ b/fs/ext4/mballoc.c > @@ -4689,7 +4689,7 @@ ext4_mb_free_metadata(handle_t *handle, struct ext4_buddy *e4b, > * Main entry point into mballoc to free blocks > */ > void ext4_mb_free_blocks(handle_t *handle, struct inode *inode, > - unsigned long block, unsigned long count, > + ext4_fsblk_t block, unsigned long count, > int metadata, unsigned long *freed) > { > struct buffer_head *bitmap_bh = NULL; > @@ -4715,11 +4715,11 @@ void ext4_mb_free_blocks(handle_t *handle, struct inode *inode, > block + count > ext4_blocks_count(es)) { > ext4_error(sb, __func__, > "Freeing blocks not in datazone - " > - "block = %lu, count = %lu", block, count); > + "block = %llu, count = %lu", block, count); > goto error_return; > } > > - ext4_debug("freeing block %lu\n", block); > + ext4_debug("freeing block %llu\n", block); > trace_ext4_free_blocks(inode, block, count, metadata); > > ac = kmem_cache_alloc(ext4_ac_cachep, GFP_NOFS); > @@ -4761,7 +4761,7 @@ do_more: > > ext4_error(sb, __func__, > "Freeing blocks in system zone - " > - "Block = %lu, count = %lu", block, count); > + "Block = %llu, count = %lu", block, count); > /* err = 0. ext4_std_error should be a no op */ > goto error_return; > } -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html