Commit 9d9d939c authored by Heinz Mauelshagen's avatar Heinz Mauelshagen Committed by Mike Snitzer
Browse files

dm raid: make rs_set_capacity to work on shrinking reshape


Signed-off-by: default avatarHeinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 6ee0bae9
...@@ -617,9 +617,7 @@ static void rs_set_capacity(struct raid_set *rs) ...@@ -617,9 +617,7 @@ static void rs_set_capacity(struct raid_set *rs)
{ {
struct mddev *mddev = &rs->md; struct mddev *mddev = &rs->md;
/* Make sure we access most actual mddev properties */ if (rs->ti->len != mddev->array_sectors) {
smp_rmb();
if (rs->ti->len != mddev->array_sectors && !rs_is_reshaping(rs)) {
struct gendisk *gendisk = dm_disk(dm_table_get_md(rs->ti->table)); struct gendisk *gendisk = dm_disk(dm_table_get_md(rs->ti->table));
set_capacity(gendisk, mddev->array_sectors); set_capacity(gendisk, mddev->array_sectors);
...@@ -1471,7 +1469,9 @@ static void do_table_event(struct work_struct *ws) ...@@ -1471,7 +1469,9 @@ static void do_table_event(struct work_struct *ws)
{ {
struct raid_set *rs = container_of(ws, struct raid_set, md.event_work); struct raid_set *rs = container_of(ws, struct raid_set, md.event_work);
rs_set_capacity(rs); smp_rmb(); /* Make sure we access most actual mddev properties */
if (!rs_is_reshaping(rs))
rs_set_capacity(rs);
dm_table_event(rs->ti->table); dm_table_event(rs->ti->table);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment