Whamcloud - gitweb
Implement cancel thread:
- we only start two threads to begin with
- new threads are started if it is possible that all threads will be blocked,
up to a predefined maximum number of threads (should be ~num_osts)
- cookie pages are kept in a pool (refilled by the threads normally), but if
the pool is empty and we need a page we try a GFP_ATOMIC allocation
- donot block the cookie commit callback when sending log cancels
Todo
- start up first commit callback thread on the MDS
- figure out where to stash llog_commit_parent pointer (ideally in MDS, since
it is the one who will be allocating it and starting the thread, but we
need it when sending the cancel cookies). Parameter to obd_log_cancel?
- clean up all commit callback threads at shutdown
- emulate "no recovery" behaviour of osc_brw_prep_request()/osc_brw_internal()
so the cancel thread can detect OST failures and start MDS<->OST recovery