diff options
| author | Alasdair G Kergon <agk@redhat.com> | 2007-12-13 09:15:57 -0500 |
|---|---|---|
| committer | Alasdair G Kergon <agk@redhat.com> | 2007-12-20 12:32:11 -0500 |
| commit | 69267a30bed1fabec658058c63845528a8b813d4 (patch) | |
| tree | d6c527bc0d456089f1eaf0998fe39ef899b8c1fc | |
| parent | adfe47702c4726b3e045f9f83178def02833be4c (diff) | |
dm: trigger change uevent on rename
Insert a missing KOBJ_CHANGE notification when a device is renamed.
Cc: Scott James Remnant <scott@ubuntu.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
| -rw-r--r-- | drivers/md/dm-ioctl.c | 2 | ||||
| -rw-r--r-- | drivers/md/dm.c | 7 | ||||
| -rw-r--r-- | drivers/md/dm.h | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c index be730fdd4830..9627fa0f9470 100644 --- a/drivers/md/dm-ioctl.c +++ b/drivers/md/dm-ioctl.c | |||
| @@ -332,6 +332,8 @@ static int dm_hash_rename(const char *old, const char *new) | |||
| 332 | dm_table_put(table); | 332 | dm_table_put(table); |
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | dm_kobject_uevent(hc->md); | ||
| 336 | |||
| 335 | dm_put(hc->md); | 337 | dm_put(hc->md); |
| 336 | up_write(&_hash_lock); | 338 | up_write(&_hash_lock); |
| 337 | kfree(old_name); | 339 | kfree(old_name); |
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index cff2a714c107..88c0fd657825 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c | |||
| @@ -1514,7 +1514,7 @@ int dm_resume(struct mapped_device *md) | |||
| 1514 | 1514 | ||
| 1515 | dm_table_unplug_all(map); | 1515 | dm_table_unplug_all(map); |
| 1516 | 1516 | ||
| 1517 | kobject_uevent(&md->disk->kobj, KOBJ_CHANGE); | 1517 | dm_kobject_uevent(md); |
| 1518 | 1518 | ||
| 1519 | r = 0; | 1519 | r = 0; |
| 1520 | 1520 | ||
| @@ -1528,6 +1528,11 @@ out: | |||
| 1528 | /*----------------------------------------------------------------- | 1528 | /*----------------------------------------------------------------- |
| 1529 | * Event notification. | 1529 | * Event notification. |
| 1530 | *---------------------------------------------------------------*/ | 1530 | *---------------------------------------------------------------*/ |
| 1531 | void dm_kobject_uevent(struct mapped_device *md) | ||
| 1532 | { | ||
| 1533 | kobject_uevent(&md->disk->kobj, KOBJ_CHANGE); | ||
| 1534 | } | ||
| 1535 | |||
| 1531 | uint32_t dm_next_uevent_seq(struct mapped_device *md) | 1536 | uint32_t dm_next_uevent_seq(struct mapped_device *md) |
| 1532 | { | 1537 | { |
| 1533 | return atomic_add_return(1, &md->uevent_seq); | 1538 | return atomic_add_return(1, &md->uevent_seq); |
diff --git a/drivers/md/dm.h b/drivers/md/dm.h index 177297a88ebd..b4584a39383b 100644 --- a/drivers/md/dm.h +++ b/drivers/md/dm.h | |||
| @@ -187,4 +187,6 @@ union map_info *dm_get_mapinfo(struct bio *bio); | |||
| 187 | int dm_open_count(struct mapped_device *md); | 187 | int dm_open_count(struct mapped_device *md); |
| 188 | int dm_lock_for_deletion(struct mapped_device *md); | 188 | int dm_lock_for_deletion(struct mapped_device *md); |
| 189 | 189 | ||
| 190 | void dm_kobject_uevent(struct mapped_device *md); | ||
| 191 | |||
| 190 | #endif | 192 | #endif |
