Hi David, I'm really sorry it took us so long to get back to you on this. :( However, I've reviewed the patch and, apart from going over the code making me want to strangle myself for structuring it that way, everything looks good. I changed the last paragraph in the commit message very slightly to clarify the cause of the bug: On Mon, Jul 29, 2013 at 8:05 AM, David Disseldorp <ddiss@xxxxxxx> wrote: > When handling a lock request, the MDS calls adjust_locks() to merge > the new lock with available neighbours. If the new lock is merged, > then the waiting_locks entry is not located in the subsequent > remove_waiting() call. > This fix ensures that the waiting_locks entry is removed prior to > modification during merge. When handling a lock request, the MDS calls adjust_locks() to merge the new lock with available neighbours. If the new lock is merged, then the waiting_locks entry is not located in the subsequent remove_waiting() call because adjust_locks changed the new lock to include the old locks. This fix ensures that the waiting_locks entry is removed prior to modification during merge. And it's now merged into master and backported to dumpling. Thank you very much! If you feel like cleaning up the locking code a little more (or anything else, for that matter) I can promise you faster reviews in the future... ;) -Greg Software Engineer #42 @ http://inktank.com | http://ceph.com -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html