xv6

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 843eecfcd0c23f2b9466e5c3289c1819950ccb47
parent 7f1718ca33fb333435b05cd9a0541e6e3b9b7249
Author: Austin Clements <amdragon@mit.edu>
Date:   Mon, 15 Aug 2011 14:11:22 -0400

Only commit log to disk if something was written in to it.

Without this, every write to the console results in log writes.

Diffstat:
Mlog.c | 12+++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/log.c b/log.c @@ -143,11 +143,13 @@ begin_trans(void) void commit_trans(void) { - write_head(); // This causes all blocks till log.head to be commited - install_trans(); // Install all the transactions till head - log.lh.n = 0; - write_head(); // Reclaim log - + if (log.lh.n > 0) { + write_head(); // This causes all blocks till log.head to be commited + install_trans(); // Install all the transactions till head + log.lh.n = 0; + write_head(); // Reclaim log + } + acquire(&log.lock); log.intrans = 0; wakeup(&log);