From b7d8ca996391c986a82d7b5d361f683e15869439 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 3 Feb 2006 03:03:40 -0800 Subject: [PATCH] --- yaml --- r: 19608 b: refs/heads/master c: 284ae7cab0f7335c9e0aa8992b28415ef1a54c7c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/md/md.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 4cdca3666506..4e4570e9bd52 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ab11f89929b785daaa428801bd8b7e65241d7913 +refs/heads/master: 284ae7cab0f7335c9e0aa8992b28415ef1a54c7c diff --git a/trunk/drivers/md/md.c b/trunk/drivers/md/md.c index 653d4dcbee23..8f161743e18f 100644 --- a/trunk/drivers/md/md.c +++ b/trunk/drivers/md/md.c @@ -2942,6 +2942,8 @@ static int get_array_info(mddev_t * mddev, void __user * arg) info.ctime = mddev->ctime; info.level = mddev->level; info.size = mddev->size; + if (info.size != mddev->size) /* overflow */ + info.size = -1; info.nr_disks = nr; info.raid_disks = mddev->raid_disks; info.md_minor = mddev->md_minor; @@ -3523,7 +3525,7 @@ static int update_array_info(mddev_t *mddev, mdu_array_info_t *info) ) return -EINVAL; /* Check there is only one change */ - if (mddev->size != info->size) cnt++; + if (info->size >= 0 && mddev->size != info->size) cnt++; if (mddev->raid_disks != info->raid_disks) cnt++; if (mddev->layout != info->layout) cnt++; if ((state ^ info->state) & (1<pers->reconfig(mddev, info->layout, -1); } - if (mddev->size != info->size) + if (info->size >= 0 && mddev->size != info->size) rv = update_size(mddev, info->size); if (mddev->raid_disks != info->raid_disks)