1 Subject: Check for device resize when rescanning partitions
2 From: Andrew Patterson <andrew.patterson@hp.com>
3 Date: Thu Oct 9 08:56:12 2008 +0200:
4 Git: 9bc3ffbfbdf71fefda8a261ef8d6fdc388a29b42
5 References: FATE#302348,FATE#303786
7 Check for device resize in the rescan_partitions() routine. If the device
8 has been resized, the bdev size is set to match. The rescan_partitions()
9 routine is called when opening the device and when calling the
12 Adapted for SLES11, based on the original commit.
14 Signed-off-by: Andrew Patterson <andrew.patterson@hp.com>
15 Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
16 Signed-off-by: Hannes Reinecke <hare@suse.de>
18 fs/partitions/check.c | 3 ++-
19 1 files changed, 2 insertions(+), 1 deletions(-)
21 diff --git a/fs/partitions/check.c b/fs/partitions/check.c
22 index ecc3330..f74d929 100644
23 --- a/fs/partitions/check.c
24 +++ b/fs/partitions/check.c
25 @@ -480,11 +480,12 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
26 res = invalidate_partition(disk, 0);
29 - bdev->bd_invalidated = 0;
30 for (p = 1; p < disk->minors; p++)
31 delete_partition(disk, p);
32 if (disk->fops->revalidate_disk)
33 disk->fops->revalidate_disk(disk);
34 + check_disk_size_change(disk, bdev);
35 + bdev->bd_invalidated = 0;
36 if (!get_capacity(disk) || !(state = check_partition(disk, bdev)))
38 if (IS_ERR(state)) /* I/O error reading the partition table */