From 3d2dedd42714fc4eb7844b17b62669e287f27583 Mon Sep 17 00:00:00 2001 From: Cody Cutler Date: Thu, 19 Feb 2015 11:51:47 -0500 Subject: [PATCH] fix buf where concurrent fs syscalls race on log entries --- log.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/log.c b/log.c index b66074c..f519a8c 100644 --- a/log.c +++ b/log.c @@ -217,6 +217,7 @@ log_write(struct buf *b) if (log.outstanding < 1) panic("log_write outside of trans"); + acquire(&log.lock); for (i = 0; i < log.lh.n; i++) { if (log.lh.sector[i] == b->sector) // log absorbtion break; @@ -225,5 +226,6 @@ log_write(struct buf *b) if (i == log.lh.n) log.lh.n++; b->flags |= B_DIRTY; // prevent eviction + release(&log.lock); }