Messages in this thread | | | Date | Wed, 30 Jul 1997 16:23:23 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: 2.1.47 oops (crash) |
| |
On Thu, 31 Jul 1997, Martin von Loewis wrote: > > You've probably noticed it: some of the oopses were related to amd > umounting some file system, which then would case a negative d_count > on some totally unrelated dentry. > > Also, there was the report of ext2 inodes surviving an umount and > suddenly re-appearing on another file system.
Ahh, you're right.
> Something is wrong with unmounting. Here's a theory: > > - iput removes the inode from the hash list only if nlink is zero > - iget, if the inode is not found, invokes get_new_inode > - get_new_inode, under certain circumstances, searches the hash list > - find_inode on the hash list searches for identical superblock and > inode number
I just found it - when we're invalidating inodes at unmount time, we do not invalidate any inode that has a non-zero "i_nrpages". But we really REALLY should do that.
We do actually want to leave inodes with a non-zero i_nrpages alone under normal circumstances, but unmounting is definitely not a normal circumstance.
Linus
| |