diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2013-01-18 10:55:28 -0500 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2013-01-18 10:55:28 -0500 |
commit | 213a9bde238a31072bb626c8b1414dc2d89cf1de (patch) | |
tree | f40c3c532659ecd8919b13c35e4470470a8f907c | |
parent | c8832420c0d0a5a93033bd8b9a9a6df5edb4f35f (diff) | |
download | longterm-queue-2.6.34-213a9bde238a31072bb626c8b1414dc2d89cf1de.tar.gz |
remove already queued patch
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | next_round/md-Fix-handling-for-devices-from-2TB-to-4TB-in-0.90-.patch | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/next_round/md-Fix-handling-for-devices-from-2TB-to-4TB-in-0.90-.patch b/next_round/md-Fix-handling-for-devices-from-2TB-to-4TB-in-0.90-.patch deleted file mode 100644 index e6d66f7..0000000 --- a/next_round/md-Fix-handling-for-devices-from-2TB-to-4TB-in-0.90-.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 8fa65576f36aa2d630081a40b9651038dbfe9dad Mon Sep 17 00:00:00 2001 -From: NeilBrown <neilb@suse.de> -Date: Sat, 10 Sep 2011 17:21:28 +1000 -Subject: [PATCH] md: Fix handling for devices from 2TB to 4TB in 0.90 - metadata. - -commit 27a7b260f71439c40546b43588448faac01adb93 upstream. - -0.90 metadata uses an unsigned 32bit number to count the number of -kilobytes used from each device. -This should allow up to 4TB per device. -However we multiply this by 2 (to get sectors) before casting to a -larger type, so sizes above 2TB get truncated. - -Also we allow rdev->sectors to be larger than 4TB, so it is possible -for the array to be resized larger than the metadata can handle. -So make sure rdev->sectors never exceeds 4TB when 0.90 metadata is in -used. - -Also the sanity check at the end of super_90_load should include level -1 as it used ->size too. (RAID0 and Linear don't use ->size at all). - -Reported-by: Pim Zandbergen <P.Zandbergen@macroscoop.nl> -Signed-off-by: NeilBrown <neilb@suse.de> -Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> - -diff --git a/drivers/md/md.c b/drivers/md/md.c -index d26df7f..4788c82 100644 ---- a/drivers/md/md.c -+++ b/drivers/md/md.c -@@ -985,8 +985,11 @@ static int super_90_load(mdk_rdev_t *rdev, mdk_rdev_t *refdev, int minor_version - ret = 0; - } - rdev->sectors = rdev->sb_start; -+ /* Limit to 4TB as metadata cannot record more than that */ -+ if (rdev->sectors >= (2ULL << 32)) -+ rdev->sectors = (2ULL << 32) - 2; - -- if (rdev->sectors < sb->size * 2 && sb->level > 1) -+ if (rdev->sectors < ((sector_t)sb->size) * 2 && sb->level >= 1) - /* "this cannot possibly happen" ... */ - ret = -EINVAL; - -@@ -1021,7 +1024,7 @@ static int super_90_validate(mddev_t *mddev, mdk_rdev_t *rdev) - mddev->clevel[0] = 0; - mddev->layout = sb->layout; - mddev->raid_disks = sb->raid_disks; -- mddev->dev_sectors = sb->size * 2; -+ mddev->dev_sectors = ((sector_t)sb->size) * 2; - mddev->events = ev1; - mddev->bitmap_info.offset = 0; - mddev->bitmap_info.default_offset = MD_SB_BYTES >> 9; -@@ -1260,6 +1263,11 @@ super_90_rdev_size_change(mdk_rdev_t *rdev, sector_t num_sectors) - rdev->sb_start = calc_dev_sboffset(rdev->bdev); - if (!num_sectors || num_sectors > rdev->sb_start) - num_sectors = rdev->sb_start; -+ /* Limit to 4TB as metadata cannot record more than that. -+ * 4TB == 2^32 KB, or 2*2^32 sectors. -+ */ -+ if (num_sectors >= (2ULL << 32)) -+ num_sectors = (2ULL << 32) - 2; - md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, - rdev->sb_page); - md_super_wait(rdev->mddev); --- -1.7.12.rc1.1.gbce1580 - |