Skip to content

Commit

Permalink
Check for device resize when rescanning partitions
Browse files Browse the repository at this point in the history
Check for device resize in the rescan_partitions() routine. If the device
has been resized, the bdev size is set to match. The rescan_partitions()
routine is called when opening the device and when calling the
BLKRRPART ioctl.

Signed-off-by: Andrew Patterson <andrew.patterson@hp.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
  • Loading branch information
Andrew Patterson authored and Jens Axboe committed Oct 9, 2008
1 parent c3279d1 commit 9bc3ffb
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion fs/partitions/check.c
Original file line number Diff line number Diff line change
Expand Up @@ -504,7 +504,6 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
res = invalidate_partition(disk, 0);
if (res)
return res;
bdev->bd_invalidated = 0;

disk_part_iter_init(&piter, disk, DISK_PITER_INCL_EMPTY);
while ((part = disk_part_iter_next(&piter)))
Expand All @@ -513,6 +512,8 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)

if (disk->fops->revalidate_disk)
disk->fops->revalidate_disk(disk);
check_disk_size_change(disk, bdev);
bdev->bd_invalidated = 0;
if (!get_capacity(disk) || !(state = check_partition(disk, bdev)))
return 0;
if (IS_ERR(state)) /* I/O error reading the partition table */
Expand Down

0 comments on commit 9bc3ffb

Please sign in to comment.