diff options
Diffstat (limited to 'drivers/ieee1394')
-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) |