projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch
[firefly-linux-kernel-4.4.55.git]
/
fs
/
ext2
/
balloc.c
diff --git
a/fs/ext2/balloc.c
b/fs/ext2/balloc.c
index 2616d0ea5c5c089aaa08007cb9d03e19f5a02258..9f9992b37924a43eb4da2c56ecb9b65f68d628a2 100644
(file)
--- a/
fs/ext2/balloc.c
+++ b/
fs/ext2/balloc.c
@@
-159,15
+159,6
@@
read_block_bitmap(struct super_block *sb, unsigned int block_group)
return bh;
}
return bh;
}
-static void release_blocks(struct super_block *sb, int count)
-{
- if (count) {
- struct ext2_sb_info *sbi = EXT2_SB(sb);
-
- percpu_counter_add(&sbi->s_freeblocks_counter, count);
- }
-}
-
static void group_adjust_blocks(struct super_block *sb, int group_no,
struct ext2_group_desc *desc, struct buffer_head *bh, int count)
{
static void group_adjust_blocks(struct super_block *sb, int group_no,
struct ext2_group_desc *desc, struct buffer_head *bh, int count)
{
@@
-568,8
+559,11
@@
do_more:
}
error_return:
brelse(bitmap_bh);
}
error_return:
brelse(bitmap_bh);
- release_blocks(sb, freed);
- dquot_free_block_nodirty(inode, freed);
+ if (freed) {
+ percpu_counter_add(&sbi->s_freeblocks_counter, freed);
+ dquot_free_block_nodirty(inode, freed);
+ mark_inode_dirty(inode);
+ }
}
/**
}
/**
@@
-1239,10
+1233,6
@@
ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal,
*errp = -ENOSPC;
sb = inode->i_sb;
*errp = -ENOSPC;
sb = inode->i_sb;
- if (!sb) {
- printk("ext2_new_blocks: nonexistent device");
- return 0;
- }
/*
* Check quota for allocation of this block.
/*
* Check quota for allocation of this block.
@@
-1416,9
+1406,11
@@
allocated:
*errp = 0;
brelse(bitmap_bh);
*errp = 0;
brelse(bitmap_bh);
- dquot_free_block_nodirty(inode, *count-num);
- mark_inode_dirty(inode);
- *count = num;
+ if (num < *count) {
+ dquot_free_block_nodirty(inode, *count-num);
+ mark_inode_dirty(inode);
+ *count = num;
+ }
return ret_block;
io_error:
return ret_block;
io_error: