diff options
| -rw-r--r-- | drivers/ieee1394/nodemgr.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index bfab7933d68c..1ce3d8a14ae7 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c | |||
| @@ -405,26 +405,11 @@ static ssize_t fw_get_destroy_node(struct bus_type *bus, char *buf) | |||
| 405 | } | 405 | } |
| 406 | static BUS_ATTR(destroy_node, S_IWUSR | S_IRUGO, fw_get_destroy_node, fw_set_destroy_node); | 406 | static BUS_ATTR(destroy_node, S_IWUSR | S_IRUGO, fw_get_destroy_node, fw_set_destroy_node); |
| 407 | 407 | ||
| 408 | static int nodemgr_rescan_bus_thread(void *__unused) | ||
| 409 | { | ||
| 410 | /* No userlevel access needed */ | ||
| 411 | daemonize("kfwrescan"); | ||
| 412 | |||
| 413 | bus_rescan_devices(&ieee1394_bus_type); | ||
| 414 | |||
| 415 | return 0; | ||
| 416 | } | ||
| 417 | 408 | ||
| 418 | static ssize_t fw_set_rescan(struct bus_type *bus, const char *buf, size_t count) | 409 | static ssize_t fw_set_rescan(struct bus_type *bus, const char *buf, size_t count) |
| 419 | { | 410 | { |
| 420 | int state = simple_strtoul(buf, NULL, 10); | 411 | if (simple_strtoul(buf, NULL, 10) == 1) |
| 421 | 412 | bus_rescan_devices(&ieee1394_bus_type); | |
| 422 | /* Don't wait for this, or care about errors. Root could do | ||
| 423 | * something stupid and spawn this a lot of times, but that's | ||
| 424 | * root's fault. */ | ||
| 425 | if (state == 1) | ||
| 426 | kernel_thread(nodemgr_rescan_bus_thread, NULL, CLONE_KERNEL); | ||
| 427 | |||
| 428 | return count; | 413 | return count; |
| 429 | } | 414 | } |
| 430 | static ssize_t fw_get_rescan(struct bus_type *bus, char *buf) | 415 | static ssize_t fw_get_rescan(struct bus_type *bus, char *buf) |
