diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 3c74096..82b3353 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1839,7 +1839,7 @@ static int ext4_da_reserve_space(struct inode *inode, sector_t lblock) struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); struct ext4_inode_info *ei = EXT4_I(inode); unsigned long md_needed, md_reserved; - + int ret; /* * recalculate the amount of metadata blocks to reserve * in order to allocate nrblocks @@ -1856,8 +1856,9 @@ repeat: * later. Real quota accounting is done at pages writeout * time. */ - if (dquot_reserve_block(inode, md_needed + 1)) - return -EDQUOT; + ret = dquot_reserve_block(inode, md_needed + 1); + if (ret) + return ret; if (ext4_claim_free_blocks(sbi, md_needed + 1)) { dquot_release_reservation_block(inode, md_needed + 1); diff --git a/fs/udf/balloc.c b/fs/udf/balloc.c index 6f9205d..e2ff180 100644 --- a/fs/udf/balloc.c +++ b/fs/udf/balloc.c @@ -801,12 +801,13 @@ static int udf_table_new_block(struct super_block *sb, newblock = goal_eloc.logicalBlockNum; goal_eloc.logicalBlockNum++; goal_elen -= sb->s_blocksize; - - if (inode && dquot_alloc_block(inode, 1)) { - brelse(goal_epos.bh); - mutex_unlock(&sbi->s_alloc_mutex); - *err = -EDQUOT; - return 0; + if (inode) { + *err = dquot_alloc_block(inode, 1); + if (*err) { + brelse(goal_epos.bh); + mutex_unlock(&sbi->s_alloc_mutex); + return 0; + } } if (goal_elen)