Browse Source

Merge branch 'for-linus' of git://neil.brown.name/md

* 'for-linus' of git://neil.brown.name/md:
  md: destroy partitions and notify udev when md array is stopped.
Linus Torvalds 16 years ago
parent
commit
721d5dfe7e
1 changed files with 7 additions and 0 deletions
  1. 7 0
      drivers/md/md.c

+ 7 - 0
drivers/md/md.c

@@ -3884,6 +3884,7 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
 	if (mode == 0) {
 	if (mode == 0) {
 		mdk_rdev_t *rdev;
 		mdk_rdev_t *rdev;
 		struct list_head *tmp;
 		struct list_head *tmp;
+		struct block_device *bdev;
 
 
 		printk(KERN_INFO "md: %s stopped.\n", mdname(mddev));
 		printk(KERN_INFO "md: %s stopped.\n", mdname(mddev));
 
 
@@ -3940,6 +3941,12 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
 		mddev->degraded = 0;
 		mddev->degraded = 0;
 		mddev->barriers_work = 0;
 		mddev->barriers_work = 0;
 		mddev->safemode = 0;
 		mddev->safemode = 0;
+		bdev = bdget_disk(mddev->gendisk, 0);
+		if (bdev) {
+			blkdev_ioctl(bdev, 0, BLKRRPART, 0);
+			bdput(bdev);
+		}
+		kobject_uevent(&disk_to_dev(mddev->gendisk)->kobj, KOBJ_CHANGE);
 
 
 	} else if (mddev->pers)
 	} else if (mddev->pers)
 		printk(KERN_INFO "md: %s switched to read-only mode.\n",
 		printk(KERN_INFO "md: %s switched to read-only mode.\n",