On Tue, Feb 10, 2009 at 11:06:39AM +0800, Li Zefan wrote: > BTW, I found another bug in current code: Why is that a bug? If _anything_ had been trying to acquire the rwsem in question, it would be fscked anyway. Not to mention that nothing could have ever seen that struct super_block in this particular case, as a general rule * if something might be blocked on your mutex/rwsem or spinning on a spinlock, releasing it before you free the object won't save your arse. You have no promise whatsoever that whoever's been trying to get the lock in question will even get out of the locking primitive before the memory that contains the lock gets freed. In case of superblocks in general, you don't free them until ->s_count hits zero. At that point anything as much as remembering the address of that superblock is already FUBAR. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html