I have seen some drivers or file systems calls "cond_resched_lock" when holding a spinlock.
An example is in fs/ocfs2/dlm/dlmdomain.c:
dlm_migrate_all_locks (acquire the spinlock)
  cond_resched_lock

I find that "cond_resched_lock" has two functions: "___might_sleep" and "__cond_resched_lock". I know that "__cond_resched_lock" is safe and okay to be called when holding a spinlock. However, I think "___might_sleep" can be removed, because it prints error messages in this situation, but it is safe in fact.

Am I right? I am looking forward to your comments :)


Thanks,
Jia-Ju Bai



Reply via email to