i think this is not so mutch mntflushfree() / mntqrm(), but when we complete a request for someone else (q != r) and we release m, the other proc could indeed be woken up already freeing the rpc while we are are trying to wakeup on that "done with" rpc?
-- cinap