diff options
author | Cody Cutler <[email protected]> | 2015-02-19 11:51:47 -0500 |
---|---|---|
committer | Cody Cutler <[email protected]> | 2015-02-19 11:51:47 -0500 |
commit | 3d2dedd42714fc4eb7844b17b62669e287f27583 (patch) | |
tree | 34e11f5880ea7e23575dae8cf2bab7109a3e2391 /log.c | |
parent | 41f16c21832f120bba96fe1d4ba0079aaf34c11a (diff) | |
download | xv6-labs-3d2dedd42714fc4eb7844b17b62669e287f27583.tar.gz xv6-labs-3d2dedd42714fc4eb7844b17b62669e287f27583.tar.bz2 xv6-labs-3d2dedd42714fc4eb7844b17b62669e287f27583.zip |
fix buf where concurrent fs syscalls race on log entries
Diffstat (limited to 'log.c')
-rw-r--r-- | log.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -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); } |