summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sterba2016-11-01 14:21:23 +0100
committerDavid Sterba2016-11-30 13:45:18 +0100
commited0df618b1b06d7431ee4d985317fc5419a5d559 (patch)
tree5c057d82d01f2e03537e0b626c9ecc9675ec27ae
parentbtrfs: remove redundant check of btrfs_iget return value (diff)
downloadkernel-qcow2-linux-ed0df618b1b06d7431ee4d985317fc5419a5d559.tar.gz
kernel-qcow2-linux-ed0df618b1b06d7431ee4d985317fc5419a5d559.tar.xz
kernel-qcow2-linux-ed0df618b1b06d7431ee4d985317fc5419a5d559.zip
btrfs: store and load values of stripes_min/stripes_max in balance status item
The balance status item contains currently known filter values, but the stripes filter was unintentionally not among them. This would mean, that interrupted and automatically restarted balance does not apply the stripe filters. Fixes: dee32d0ac3719ef8d640efaf0884111df444730f CC: stable@vger.kernel.org # 4.4+ Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/ctree.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 2cf4bc84388e..1b25a460ecea 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -2210,6 +2210,8 @@ btrfs_disk_balance_args_to_cpu(struct btrfs_balance_args *cpu,
cpu->target = le64_to_cpu(disk->target);
cpu->flags = le64_to_cpu(disk->flags);
cpu->limit = le64_to_cpu(disk->limit);
+ cpu->stripes_min = le32_to_cpu(disk->stripes_min);
+ cpu->stripes_max = le32_to_cpu(disk->stripes_max);
}
static inline void
@@ -2228,6 +2230,8 @@ btrfs_cpu_balance_args_to_disk(struct btrfs_disk_balance_args *disk,
disk->target = cpu_to_le64(cpu->target);
disk->flags = cpu_to_le64(cpu->flags);
disk->limit = cpu_to_le64(cpu->limit);
+ disk->stripes_min = cpu_to_le32(cpu->stripes_min);
+ disk->stripes_max = cpu_to_le32(cpu->stripes_max);
}
/* struct btrfs_super_block */