diff options
| -rw-r--r-- | sys/src/cmd/upas/fs/fs.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/src/cmd/upas/fs/fs.c b/sys/src/cmd/upas/fs/fs.c index 2b399ac3c..e34cfa25e 100644 --- a/sys/src/cmd/upas/fs/fs.c +++ b/sys/src/cmd/upas/fs/fs.c @@ -1442,17 +1442,17 @@ sanefid(f); /* coherence(); */ f->fid = -1; f->open = 0; - if(f->mtop){ - qlock(f->mb); - msgdecref(f->mb, f->mtop); - qunlock(f->mb); - } + mb = f->mb; + if(mb != nil) + qlock(mb); + if(f->mtop) + msgdecref(mb, f->mtop); if(f->m) - msgdecref(f->mb, gettopmsg(f->mb, f->m)); + msgdecref(mb, gettopmsg(mb, f->m)); f->m = f->mtop = nil; - mb = f->mb; if(mb != nil){ f->mb = nil; + qunlock(mb); assert(mb->refs > 0); qlock(&mbllock); mboxdecref(mb); |
