Menu

#17 Inodes written AFTER imap! :(

open
5
2006-03-17
2006-03-17
No

As can be seen in the trace below, the kernel is
deciding to write inodes to disk AFTER kill super has
occurred. This means its possible to unmount the file
system and write an imap to the disk that does NOT
contain the updated block number for some inode.

Maybe I need to NOT rely on the kernel's write_inode()
and write_super() functions to get my data into the
stage_seg?? There IS a delay.. there probably should
not be. I need one of two solutions:

1) Make sure there is NO kernel delay in writing inodes
to the stageseg when I modify/create them.

2) Do not use the kernel 's system, create my own
functions to write inodes to the disk and call them
whenever I modify an inode. It would be kind of like a
dirty_inode() call :) So its no more intrusive than
what I have to do now.

I think I am liking #2 the best. For now, since I am
trying to track down a bug, I'll just use sync to make
sure my inodes are written to disk before I umount.

treefs: Kill superblock was called!!
stageseg writetodisk:start_blk=1536 end_blk=2042
treefs: stageseg_write_to_disk: about to write bdescs
treefs: killsb: Checkpoint is in seg 4
treefs: killsb: sb seg num used for cparea writing is63
treefs: Kill superblock about to call kernel kill_sb
treefs: put_inode was called for 10!
treefs: put_inode was called for 1!
treefs: write_inode was called for inode 1. !
treefs: stageseg: Requested block 1538
treefs: write_inode: Inodes new blk num is 1538
stageseg write inode called for inode at block 1538
BDESC UPDATE: About to write INODE bdesc to index 2
treefs: stageseg: released block 1538
treefs: put_inode was called for 1!
treefs: write_inode was called for inode 10. !
treefs: stageseg: Requested block 1539
treefs: write_inode: Inodes new blk num is 1539
stageseg write inode called for inode at block 1539
BDESC UPDATE: About to write INODE bdesc to index 3
treefs: stageseg: released block 1539
treefs: put_inode was called for 10!
treefs: destroy_inode was called for inode 1. !
treefs: destroy_inode was called for inode 10. !
opsysfs: put_super was called!
treefs: Kill superblock about to exit

Discussion


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.