summaryrefslogtreecommitdiff
path: root/ide.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2011-08-26 10:08:29 -0400
committerFrans Kaashoek <[email protected]>2011-08-26 10:08:29 -0400
commit3a5fa7ed9020eaf8ab843a16d26db7393b2ec072 (patch)
treebfa4ad4ae03d7d21796bacaa7eab8e3d3e4ab365 /ide.c
parent8a9b6dbd4468f6312f1d07226a623879f970bd4b (diff)
downloadxv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.tar.gz
xv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.tar.bz2
xv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.zip
Introduce and use sleeplocks instead of BUSY flags
Remove I_BUSY, B_BUSY, and intrans defs and usages One spinlock per buf to avoid ugly loop in bget fix race in filewrite (don't update f->off after releasing lock)
Diffstat (limited to 'ide.c')
-rw-r--r--ide.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ide.c b/ide.c
index 4165831..e41437e 100644
--- a/ide.c
+++ b/ide.c
@@ -127,7 +127,7 @@ iderw(struct buf *b)
{
struct buf **pp;
- if(!(b->flags & B_BUSY))
+ if(!acquired_sleeplock(&b->sleeplock))
panic("iderw: buf not busy");
if((b->flags & (B_VALID|B_DIRTY)) == B_VALID)
panic("iderw: nothing to do");