diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c index c60f3d3..a09c526 100644 --- a/fs/jfs/xattr.c +++ b/fs/jfs/xattr.c @@ -493,14 +493,14 @@ static int ea_get(struct inode *inode, struct ea_buffer *ea_buf, int min_size) * To keep the rest of the code simple. Allocate a * contiguous buffer to work with */ - ea_buf->xattr = kmalloc(size, GFP_KERNEL); + ea_buf->max_size = (size + sb->s_blocksize - 1) & + ~(sb->s_blocksize - 1); + + ea_buf->xattr = kmalloc(ea_buf->max_size, GFP_KERNEL); if (ea_buf->xattr == NULL) return -ENOMEM; ea_buf->flag = EA_MALLOC; - ea_buf->max_size = (size + sb->s_blocksize - 1) & - ~(sb->s_blocksize - 1); - if (ea_size == 0) return 0;