diff options
author | goggin, edward <egoggin@emc.com> | 2006-01-06 03:20:01 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 11:34:00 -0500 |
commit | 81f1777a55e8c631b61e5fa5980fb7a2004287af (patch) | |
tree | e63c43ce8951e316f21a85554d867dd25a2ceb6c | |
parent | d229a9589ff3b988d3f999cdcfa350f97a372673 (diff) |
[PATCH] device-mapper ioctl: event on rename
After changing the name of a mapped device, trigger a dm event. (For
userspace multipath tools.)
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/md/dm-ioctl.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c index 07d44e19536e..3e327db57310 100644 --- a/drivers/md/dm-ioctl.c +++ b/drivers/md/dm-ioctl.c | |||
@@ -270,6 +270,7 @@ static int dm_hash_rename(const char *old, const char *new) | |||
270 | { | 270 | { |
271 | char *new_name, *old_name; | 271 | char *new_name, *old_name; |
272 | struct hash_cell *hc; | 272 | struct hash_cell *hc; |
273 | struct dm_table *table; | ||
273 | 274 | ||
274 | /* | 275 | /* |
275 | * duplicate new. | 276 | * duplicate new. |
@@ -317,6 +318,15 @@ static int dm_hash_rename(const char *old, const char *new) | |||
317 | /* rename the device node in devfs */ | 318 | /* rename the device node in devfs */ |
318 | register_with_devfs(hc); | 319 | register_with_devfs(hc); |
319 | 320 | ||
321 | /* | ||
322 | * Wake up any dm event waiters. | ||
323 | */ | ||
324 | table = dm_get_table(hc->md); | ||
325 | if (table) { | ||
326 | dm_table_event(table); | ||
327 | dm_table_put(table); | ||
328 | } | ||
329 | |||
320 | up_write(&_hash_lock); | 330 | up_write(&_hash_lock); |
321 | kfree(old_name); | 331 | kfree(old_name); |
322 | return 0; | 332 | return 0; |