udf: fix memory leak while allocating blocks during write
authorNamjae Jeon <namjae.jeon@samsung.com>
Tue, 9 Oct 2012 15:08:56 +0000 (00:08 +0900)
committerJan Kara <jack@suse.cz>
Thu, 13 Dec 2012 15:33:23 +0000 (16:33 +0100)
Need to brelse the buffer_head stored in cur_epos and next_epos.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Ashish Sangwan <a.sangwan@samsung.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/udf/inode.c

index df88b95..2b77593 100644 (file)
@@ -765,6 +765,8 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
                                goal, err);
                if (!newblocknum) {
                        brelse(prev_epos.bh);
+                       brelse(cur_epos.bh);
+                       brelse(next_epos.bh);
                        *err = -ENOSPC;
                        return 0;
                }
@@ -795,6 +797,8 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
        udf_update_extents(inode, laarr, startnum, endnum, &prev_epos);
 
        brelse(prev_epos.bh);
+       brelse(cur_epos.bh);
+       brelse(next_epos.bh);
 
        newblock = udf_get_pblock(inode->i_sb, newblocknum,
                                iinfo->i_location.partitionReferenceNum, 0);