diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-28 15:26:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-28 15:26:59 -0400 |
commit | 0a2a1330d2621c7f963d9f55bb094811cc1c06b9 (patch) | |
tree | ee1850a7461623a9ac0fbcb2d8ccd1701606a5c6 /fs/btrfs/volumes.c | |
parent | 9583f1c99fe5a11b3f294ac8093e93f008bea29e (diff) | |
parent | 0e4324a4c36b3eb5cd1f71cbbc38d888f919ebfc (diff) |
Merge branch 'for-4.13-part3' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs fixes from David Sterba:
"Fixes addressing problems reported by users, and there's one more
regression fix"
* 'for-4.13-part3' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
btrfs: round down size diff when shrinking/growing device
Btrfs: fix early ENOSPC due to delalloc
btrfs: fix lockup in find_free_extent with read-only block groups
Btrfs: fix dir item validation when replaying xattr deletes
Diffstat (limited to 'fs/btrfs/volumes.c')
-rw-r--r-- | fs/btrfs/volumes.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 5eb7217738ed..e8b9a269fdde 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
@@ -2702,7 +2702,7 @@ int btrfs_grow_device(struct btrfs_trans_handle *trans, | |||
2702 | 2702 | ||
2703 | mutex_lock(&fs_info->chunk_mutex); | 2703 | mutex_lock(&fs_info->chunk_mutex); |
2704 | old_total = btrfs_super_total_bytes(super_copy); | 2704 | old_total = btrfs_super_total_bytes(super_copy); |
2705 | diff = new_size - device->total_bytes; | 2705 | diff = round_down(new_size - device->total_bytes, fs_info->sectorsize); |
2706 | 2706 | ||
2707 | if (new_size <= device->total_bytes || | 2707 | if (new_size <= device->total_bytes || |
2708 | device->is_tgtdev_for_dev_replace) { | 2708 | device->is_tgtdev_for_dev_replace) { |
@@ -4406,7 +4406,7 @@ int btrfs_shrink_device(struct btrfs_device *device, u64 new_size) | |||
4406 | u64 diff; | 4406 | u64 diff; |
4407 | 4407 | ||
4408 | new_size = round_down(new_size, fs_info->sectorsize); | 4408 | new_size = round_down(new_size, fs_info->sectorsize); |
4409 | diff = old_size - new_size; | 4409 | diff = round_down(old_size - new_size, fs_info->sectorsize); |
4410 | 4410 | ||
4411 | if (device->is_tgtdev_for_dev_replace) | 4411 | if (device->is_tgtdev_for_dev_replace) |
4412 | return -EINVAL; | 4412 | return -EINVAL; |