1 struct buf {
2 int valid; // has data been read from disk?
3 int disk; // does disk "own" buf?
4 uint dev;
5 uint blockno;
6 struct sleeplock lock;
7 uint refcnt;
8 struct buf *prev; // LRU cache list
9 struct buf *next;
10 uchar data[BSIZE];
11 };
12