predirty_journal_parents does wrlock_start with
nowait=true. Make sure we don't then simple_lock if
lock->is_updated(), as that will call scatter_writebehind,
which will barf if a log event is currently open (which
it is in this case).
if (in->is_auth()) {
if (want_scatter)
file_mixed((ScatterLock*)lock);
- else
+ else {
+ if (nowait && lock->is_updated())
+ return false; // don't do nested lock, as that may scatter_writebehind in simple_lock!
simple_lock(lock);
+ }
if (nowait && !lock->can_wrlock(client))
return false;