Loading fs/ext2/inode.c +12 −0 Original line number Diff line number Diff line Loading @@ -495,6 +495,10 @@ static int ext2_alloc_branch(struct inode *inode, * parent to disk. */ bh = sb_getblk(inode->i_sb, new_blocks[n-1]); if (unlikely(!bh)) { err = -ENOMEM; goto failed; } branch[n].bh = bh; lock_buffer(bh); memset(bh->b_data, 0, blocksize); Loading Loading @@ -523,6 +527,14 @@ static int ext2_alloc_branch(struct inode *inode, } *blks = num; return err; failed: for (i = 1; i < n; i++) bforget(branch[i].bh); for (i = 0; i < indirect_blks; i++) ext2_free_blocks(inode, new_blocks[i], 1); ext2_free_blocks(inode, new_blocks[i], num); return err; } /** Loading Loading
fs/ext2/inode.c +12 −0 Original line number Diff line number Diff line Loading @@ -495,6 +495,10 @@ static int ext2_alloc_branch(struct inode *inode, * parent to disk. */ bh = sb_getblk(inode->i_sb, new_blocks[n-1]); if (unlikely(!bh)) { err = -ENOMEM; goto failed; } branch[n].bh = bh; lock_buffer(bh); memset(bh->b_data, 0, blocksize); Loading Loading @@ -523,6 +527,14 @@ static int ext2_alloc_branch(struct inode *inode, } *blks = num; return err; failed: for (i = 1; i < n; i++) bforget(branch[i].bh); for (i = 0; i < indirect_blks; i++) ext2_free_blocks(inode, new_blocks[i], 1); ext2_free_blocks(inode, new_blocks[i], num); return err; } /** Loading