diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index a4b7e4bc32d4..85baf1c62e65 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -232,6 +232,10 @@ static void ext4_write_inline_data(struct inode *inode, struct ext4_iloc *iloc, return; BUG_ON(!EXT4_I(inode)->i_inline_off); + if (pos + len > EXT4_I(inode)->i_inline_size) + ext4_warning(inode->i_sb, "inode #%lu: pos %llu, len %u, " + "i_inline_size %u", inode->i_ino, + pos, len, EXT4_I(inode)->i_inline_size); BUG_ON(pos + len > EXT4_I(inode)->i_inline_size); raw_inode = ext4_raw_inode(iloc); @@ -687,6 +691,10 @@ int ext4_try_to_write_inline_data(struct address_space *mapping, } ret = ext4_prepare_inline_data(handle, inode, pos + len); + ext4_warning(inode->i_sb, + "inode #%lu: pos %llu len %u " + "prepare_inline_data returns %d", + inode->i_ino, pos, len, ret); if (ret && ret != -ENOSPC) goto out;