Loading block/elevator.c +8 −4 Original line number Original line Diff line number Diff line Loading @@ -938,6 +938,7 @@ int elv_register_queue(struct request_queue *q) } } } } kobject_uevent(&e->kobj, KOBJ_ADD); kobject_uevent(&e->kobj, KOBJ_ADD); e->registered = 1; } } return error; return error; } } Loading @@ -947,6 +948,7 @@ static void __elv_unregister_queue(struct elevator_queue *e) { { kobject_uevent(&e->kobj, KOBJ_REMOVE); kobject_uevent(&e->kobj, KOBJ_REMOVE); kobject_del(&e->kobj); kobject_del(&e->kobj); e->registered = 0; } } void elv_unregister_queue(struct request_queue *q) void elv_unregister_queue(struct request_queue *q) Loading Loading @@ -1042,11 +1044,13 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e) spin_unlock_irq(q->queue_lock); spin_unlock_irq(q->queue_lock); if (old_elevator->registered) { __elv_unregister_queue(old_elevator); __elv_unregister_queue(old_elevator); err = elv_register_queue(q); err = elv_register_queue(q); if (err) if (err) goto fail_register; goto fail_register; } /* /* * finally exit old elevator and turn off BYPASS. * finally exit old elevator and turn off BYPASS. Loading include/linux/elevator.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -93,6 +93,7 @@ struct elevator_queue struct elevator_type *elevator_type; struct elevator_type *elevator_type; struct mutex sysfs_lock; struct mutex sysfs_lock; struct hlist_head *hash; struct hlist_head *hash; unsigned int registered:1; }; }; /* /* Loading Loading
block/elevator.c +8 −4 Original line number Original line Diff line number Diff line Loading @@ -938,6 +938,7 @@ int elv_register_queue(struct request_queue *q) } } } } kobject_uevent(&e->kobj, KOBJ_ADD); kobject_uevent(&e->kobj, KOBJ_ADD); e->registered = 1; } } return error; return error; } } Loading @@ -947,6 +948,7 @@ static void __elv_unregister_queue(struct elevator_queue *e) { { kobject_uevent(&e->kobj, KOBJ_REMOVE); kobject_uevent(&e->kobj, KOBJ_REMOVE); kobject_del(&e->kobj); kobject_del(&e->kobj); e->registered = 0; } } void elv_unregister_queue(struct request_queue *q) void elv_unregister_queue(struct request_queue *q) Loading Loading @@ -1042,11 +1044,13 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e) spin_unlock_irq(q->queue_lock); spin_unlock_irq(q->queue_lock); if (old_elevator->registered) { __elv_unregister_queue(old_elevator); __elv_unregister_queue(old_elevator); err = elv_register_queue(q); err = elv_register_queue(q); if (err) if (err) goto fail_register; goto fail_register; } /* /* * finally exit old elevator and turn off BYPASS. * finally exit old elevator and turn off BYPASS. Loading
include/linux/elevator.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -93,6 +93,7 @@ struct elevator_queue struct elevator_type *elevator_type; struct elevator_type *elevator_type; struct mutex sysfs_lock; struct mutex sysfs_lock; struct hlist_head *hash; struct hlist_head *hash; unsigned int registered:1; }; }; /* /* Loading