Whamcloud - gitweb
Branch b1_4
b=8322
r=nathan
Description: OST or MDS may oops in ping_evictor_main()
Details : ping_evictor_main() drops obd_dev_lock if deleting a stale
export but doesn't restart at beginning of obd_exports_timed
list afterward.
The list_for_each_safe() macro is only safe for the removal of the current
entry and not safe if some other entry (in particular the next one)
is removed. As class_fail_export() will immediately result in the export
being removed from the obd_exports_timed list (via class_unlink_export())
we are OK to restart processing at the start of the list each time.
The extra pet_lock around pet_exp references in code are not strictly
necessary, but rather precautionary and for consistency when accessing
pet_exp.