diff options
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r-- | fs/btrfs/file.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 2234e88cf674..bcfb4a27ddd4 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -1629,13 +1629,11 @@ again: | |||
1629 | * managed to copy. | 1629 | * managed to copy. |
1630 | */ | 1630 | */ |
1631 | if (num_sectors > dirty_sectors) { | 1631 | if (num_sectors > dirty_sectors) { |
1632 | /* | 1632 | |
1633 | * we round down because we don't want to count | 1633 | /* release everything except the sectors we dirtied */ |
1634 | * any partial blocks actually sent through the | 1634 | release_bytes -= dirty_sectors << |
1635 | * IO machines | 1635 | root->fs_info->sb->s_blocksize_bits; |
1636 | */ | 1636 | |
1637 | release_bytes = round_down(release_bytes - copied, | ||
1638 | root->sectorsize); | ||
1639 | if (copied > 0) { | 1637 | if (copied > 0) { |
1640 | spin_lock(&BTRFS_I(inode)->lock); | 1638 | spin_lock(&BTRFS_I(inode)->lock); |
1641 | BTRFS_I(inode)->outstanding_extents++; | 1639 | BTRFS_I(inode)->outstanding_extents++; |
@@ -2479,7 +2477,7 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len) | |||
2479 | } | 2477 | } |
2480 | 2478 | ||
2481 | ret = btrfs_block_rsv_migrate(&root->fs_info->trans_block_rsv, rsv, | 2479 | ret = btrfs_block_rsv_migrate(&root->fs_info->trans_block_rsv, rsv, |
2482 | min_size); | 2480 | min_size, 0); |
2483 | BUG_ON(ret); | 2481 | BUG_ON(ret); |
2484 | trans->block_rsv = rsv; | 2482 | trans->block_rsv = rsv; |
2485 | 2483 | ||
@@ -2522,7 +2520,7 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len) | |||
2522 | } | 2520 | } |
2523 | 2521 | ||
2524 | ret = btrfs_block_rsv_migrate(&root->fs_info->trans_block_rsv, | 2522 | ret = btrfs_block_rsv_migrate(&root->fs_info->trans_block_rsv, |
2525 | rsv, min_size); | 2523 | rsv, min_size, 0); |
2526 | BUG_ON(ret); /* shouldn't happen */ | 2524 | BUG_ON(ret); /* shouldn't happen */ |
2527 | trans->block_rsv = rsv; | 2525 | trans->block_rsv = rsv; |
2528 | 2526 | ||