| From c26a44ed1e552aaa1d4ceb71842002d235fe98d7 Mon Sep 17 00:00:00 2001 |
| From: Justin Maggard <jmaggard10@gmail.com> |
| Date: Wed, 24 Nov 2010 16:36:17 +1100 |
| Subject: md: fix return value of rdev_size_change() |
| |
| From: Justin Maggard <jmaggard10@gmail.com> |
| |
| commit c26a44ed1e552aaa1d4ceb71842002d235fe98d7 upstream. |
| |
| When trying to grow an array by enlarging component devices, |
| rdev_size_store() expects the return value of rdev_size_change() to be |
| in sectors, but the actual value is returned in KBs. |
| |
| This functionality was broken by commit |
| dd8ac336c13fd8afdb082ebacb1cddd5cf727889 |
| so this patch is suitable for any kernel since 2.6.30. |
| |
| Signed-off-by: Justin Maggard <jmaggard10@gmail.com> |
| Signed-off-by: NeilBrown <neilb@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/md/md.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/md/md.c |
| +++ b/drivers/md/md.c |
| @@ -1255,7 +1255,7 @@ super_90_rdev_size_change(mdk_rdev_t *rd |
| md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, |
| rdev->sb_page); |
| md_super_wait(rdev->mddev); |
| - return num_sectors / 2; /* kB for sysfs */ |
| + return num_sectors; |
| } |
| |
| |
| @@ -1617,7 +1617,7 @@ super_1_rdev_size_change(mdk_rdev_t *rde |
| md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, |
| rdev->sb_page); |
| md_super_wait(rdev->mddev); |
| - return num_sectors / 2; /* kB for sysfs */ |
| + return num_sectors; |
| } |
| |
| static struct super_type super_types[] = { |