Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8d86d8a authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block

* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  elevator: fix oops on early call to elevator_change()
parents 74de82ed 430c62fb
Loading
Loading
Loading
Loading
+8 −4
Original line number Original line Diff line number Diff line
@@ -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;
}
}
@@ -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)
@@ -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.
+1 −0
Original line number Original line Diff line number Diff line
@@ -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;
};
};


/*
/*