On Wed, Jun 30, 2010 at 06:21:27PM +0800, Peter Pan wrote: > if ext2_new_blocks returns error, no blocks need to be freed. > Hi Peter, Your patch isn't right. The original code is OK as is. Are you seeing a kernel panic? Perhaps we can help you fix it. regards, dan carpenter > Signed-off-by: Peter Pan <wppan@xxxxxxxxxxxxxxxxx> > --- > fs/ext2/inode.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c > index 3675088..f858847 100644 > --- a/fs/ext2/inode.c > +++ b/fs/ext2/inode.c > @@ -385,6 +385,8 @@ static int ext2_alloc_blocks(struct inode *inode, > ext2_fsblk_t current_block = 0; > int ret = 0; > > + *err = -ENOSPC; > + > /* > * Here we try to allocate the requested multiple blocks at once, > * on a best-effort basis. > @@ -421,8 +423,6 @@ static int ext2_alloc_blocks(struct inode *inode, > *err = 0; > return ret; > failed_out: > - for (i = 0; i <index; i++) > - ext2_free_blocks(inode, new_blocks[i], 1); > return ret; > } > > -- > 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html