]> git.hungrycats.org Git - linux/commitdiff
btrfs: store and load values of stripes_min/stripes_max in balance status item
authorDavid Sterba <dsterba@suse.com>
Tue, 1 Nov 2016 13:21:23 +0000 (14:21 +0100)
committerZygo Blaxell <zblaxell@thirteen.furryterror.org>
Fri, 28 Jul 2017 18:24:06 +0000 (14:24 -0400)
commit ed0df618b1b06d7431ee4d985317fc5419a5d559 upstream.

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
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c01ea880e88abedec7c4f02fcd9a110ce73c7ccb)

fs/btrfs/ctree.h

index 2d1983acb65431754c6bedcaa3ad8c63a78a4910..e7769cc5cc64f57c7e7f1ecff172feaca2ddbcd1 100644 (file)
@@ -3140,6 +3140,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
@@ -3158,6 +3160,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 */