Эх сурвалжийг харах

MD: fix null pointer deference

The md device might not have personality (for example, ddf raid array). The
issue is introduced by 8430e7e0af9a15(md: disconnect device from personality
before trying to remove it)

Reported-by: kernel test robot <xiaolong.ye@intel.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Shaohua Li 9 жил өмнө
parent
commit
5d8817833c
1 өөрчлөгдсөн 4 нэмэгдсэн , 2 устгасан
  1. 4 2
      drivers/md/md.c

+ 4 - 2
drivers/md/md.c

@@ -2595,8 +2595,10 @@ state_store(struct md_rdev *rdev, const char *buf, size_t len)
 		else
 		else
 			err = -EBUSY;
 			err = -EBUSY;
 	} else if (cmd_match(buf, "remove")) {
 	} else if (cmd_match(buf, "remove")) {
-		clear_bit(Blocked, &rdev->flags);
-		remove_and_add_spares(rdev->mddev, rdev);
+		if (rdev->mddev->pers) {
+			clear_bit(Blocked, &rdev->flags);
+			remove_and_add_spares(rdev->mddev, rdev);
+		}
 		if (rdev->raid_disk >= 0)
 		if (rdev->raid_disk >= 0)
 			err = -EBUSY;
 			err = -EBUSY;
 		else {
 		else {