aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/md.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 7daa7b1e145f..50ab4a936e30 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2003,6 +2003,7 @@ static mdk_rdev_t *md_import_device(dev_t newdev, int super_format, int super_mi
2003 kobject_init(&rdev->kobj); 2003 kobject_init(&rdev->kobj);
2004 2004
2005 rdev->desc_nr = -1; 2005 rdev->desc_nr = -1;
2006 rdev->saved_raid_disk = -1;
2006 rdev->flags = 0; 2007 rdev->flags = 0;
2007 rdev->data_offset = 0; 2008 rdev->data_offset = 0;
2008 rdev->sb_events = 0; 2009 rdev->sb_events = 0;
@@ -4044,11 +4045,8 @@ static int update_size(mddev_t *mddev, unsigned long size)
4044 return -EBUSY; 4045 return -EBUSY;
4045 ITERATE_RDEV(mddev,rdev,tmp) { 4046 ITERATE_RDEV(mddev,rdev,tmp) {
4046 sector_t avail; 4047 sector_t avail;
4047 if (rdev->sb_offset > rdev->data_offset) 4048 avail = rdev->size * 2;
4048 avail = (rdev->sb_offset*2) - rdev->data_offset; 4049
4049 else
4050 avail = get_capacity(rdev->bdev->bd_disk)
4051 - rdev->data_offset;
4052 if (fit && (size == 0 || size > avail/2)) 4050 if (fit && (size == 0 || size > avail/2))
4053 size = avail/2; 4051 size = avail/2;
4054 if (avail < ((sector_t)size << 1)) 4052 if (avail < ((sector_t)size << 1))