On Thu, Jan 04, 2007 at 01:25:35PM +0300, Alex Tomas wrote: > >>>>> Amit K Arora (AKA) writes: > > AKA> +int ext4_ext_check_overlap(struct inode *inode, > AKA> + struct ext4_extent *newext, > AKA> + unsigned long *block) > AKA> +{ > AKA> + struct ext4_ext_path *path; > AKA> + unsigned int depth, b1, len1; > AKA> + int ret = 0; > AKA> + > AKA> + b1 = le32_to_cpu(newext->ee_block); > AKA> + len1 = le16_to_cpu(newext->ee_len); > AKA> + path = ext4_ext_find_extent(inode, b1, NULL); > AKA> + if (IS_ERR(path)) { > AKA> + ret = PTR_ERR(path); > AKA> + goto out; > AKA> + } > AKA> + depth = ext_depth(inode); > AKA> + BUG_ON(path[depth].p_ext == NULL && depth != 0); > AKA> + > AKA> + *block = ext4_ext_next_allocated_block(path); > AKA> + if (*block == EXT_MAX_BLOCK) > AKA> + goto out; > AKA> + > AKA> + if (b1 + len1 > *block) > AKA> + ret = 1; > AKA> +out: > AKA> + return ret; > > <AT> ext4_ext_find_extent() allocates 'path', I'd expect > <AT> kfree() in the function. Ok. I will add following after "out:" if (path) { ext4_ext_drop_refs(path); kfree(path); } And also set "path = NULL;" before calling "goto out", incase ext4_ext_find_extent() returns an error. -- Regards, Amit Arora - 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