Hi Ming On 08/17/2018 05:33 PM, Ming Lei wrote: >> + /* >> + * elevator_release will put it. >> + */ >> + __module_get(q->elv_type->elevator_owner); > I understand what elevator_release() frees is the 'ref-counter' got in > elevator_get(), but who will be the counter-pair of the above __module_get()? Sorry for my bad description. The code path is: elevator_release -> elevator_put(e->type) -> module_put(e->elevator_owner) In normal elevator switch path, elevator_get will hold a reference counter of the elevator_owner. In this patch set, the elevator_type is saved directly. To prevent the io scheduler module is removed, we need to hold a reference of the module. Thanks Jianchao