提交 107ec052 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

almost-tmpfs

上级 decfb4f4
...@@ -30,6 +30,8 @@ ...@@ -30,6 +30,8 @@
static struct ns *bufns; static struct ns *bufns;
enum { writeback = 0 };
void void
binit(void) binit(void)
{ {
...@@ -143,6 +145,7 @@ bwrite(struct buf *b) ...@@ -143,6 +145,7 @@ bwrite(struct buf *b)
if((b->flags & B_BUSY) == 0) if((b->flags & B_BUSY) == 0)
panic("bwrite"); panic("bwrite");
b->flags |= B_DIRTY; b->flags |= B_DIRTY;
if (writeback)
iderw(b); iderw(b);
} }
......
...@@ -19,6 +19,7 @@ struct inode { ...@@ -19,6 +19,7 @@ struct inode {
int flags; // I_BUSY, I_VALID int flags; // I_BUSY, I_VALID
struct condvar cv; struct condvar cv;
struct spinlock lock; struct spinlock lock;
char lockname[16];
short type; // copy of disk inode short type; // copy of disk inode
short major; short major;
......
...@@ -259,8 +259,9 @@ iget(uint dev, uint inum) ...@@ -259,8 +259,9 @@ iget(uint dev, uint inum)
ip->inum = inum; ip->inum = inum;
ip->ref = 1; ip->ref = 1;
ip->flags = I_BUSY; ip->flags = I_BUSY;
initlock(&ip->lock, "icache-lock"); snprintf(ip->lockname, sizeof(ip->lockname), "cv:ino:%d", ip->inum);
initcondvar(&ip->cv, "icache-cv"); initlock(&ip->lock, ip->lockname+3);
initcondvar(&ip->cv, ip->lockname);
if (ns_insert(ins, ip->inum, ip) < 0) { if (ns_insert(ins, ip->inum, ip) < 0) {
rcu_delayed(ip, kmfree); rcu_delayed(ip, kmfree);
goto retry; goto retry;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define NCPU 2 // maximum number of CPUs #define NCPU 2 // maximum number of CPUs
#define NOFILE 16 // open files per process #define NOFILE 16 // open files per process
#define NFILE 100 // open files per system #define NFILE 100 // open files per system
#define NBUF 10 // size of disk block cache #define NBUF 1000 // size of disk block cache
#define NINODE 50 // maximum number of active i-nodes #define NINODE 50 // maximum number of active i-nodes
#define NDEV 10 // maximum major device number #define NDEV 10 // maximum major device number
#define ROOTDEV 1 // device number of file system root disk #define ROOTDEV 1 // device number of file system root disk
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论