lightnvm: remove nested lock conflict with mm
authorMatias Bjørling <m@bjorling.me>
Thu, 7 Jul 2016 07:54:17 +0000 (09:54 +0200)
committerJens Axboe <axboe@fb.com>
Thu, 7 Jul 2016 14:51:52 +0000 (08:51 -0600)
commit5cd907853d5b777c11ecbc8de4482ea5f51663bc
tree23cf4e800cba9be0351780bb82824713ade3dc82
parentb76eb20bb0c6f4f9c2e1ad493f73c52817b8aaff
lightnvm: remove nested lock conflict with mm

If a media manager tries to initialize it targets upon media manager
initialization, the media manager will need to know which target types
are available in LightNVM. The lists of which managers and target types
are available shares the same lock.

Therefore, on initialization, the nvm_lock is taken by LightNVM core,
which later leads to a deadlock when target types are enumerated by the
media manager.

Add an exclusive lock for target types to resolve this conflict.

Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/lightnvm/core.c