|
@@ -506,7 +506,7 @@ static inline char * mdname (struct mddev * mddev)
|
|
|
static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev)
|
|
|
{
|
|
|
char nm[20];
|
|
|
- if (!test_bit(Replacement, &rdev->flags)) {
|
|
|
+ if (!test_bit(Replacement, &rdev->flags) && mddev->kobj.sd) {
|
|
|
sprintf(nm, "rd%d", rdev->raid_disk);
|
|
|
return sysfs_create_link(&mddev->kobj, &rdev->kobj, nm);
|
|
|
} else
|
|
@@ -516,7 +516,7 @@ static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev)
|
|
|
static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev)
|
|
|
{
|
|
|
char nm[20];
|
|
|
- if (!test_bit(Replacement, &rdev->flags)) {
|
|
|
+ if (!test_bit(Replacement, &rdev->flags) && mddev->kobj.sd) {
|
|
|
sprintf(nm, "rd%d", rdev->raid_disk);
|
|
|
sysfs_remove_link(&mddev->kobj, nm);
|
|
|
}
|