Reading An Empty Inode
Here is the I/O trace for create(/foo/bar) on a vsfs-style file system, cold cache:
| # | structure | op |
|---|---|---|
| 1 | root inode | read |
| 2 | root data | read |
| 3 | foo inode |
read |
| 4 | foo data |
read |
| 5 | inode bitmap | read |
| 6 | inode bitmap | write |
| 7 | foo data |
write |
| 8 | bar inode |
read |
| 9 | bar inode |
write |
| 10 | foo inode |
write |
Step 8 reads bar's inode before step 9 initializes it, even though that inode has never held anything and the file system is about to overwrite every field. Why is the read there?
Sign in to answer questions and track your progress
Sign In