H.J. can you trace it back one more function? If I know where the
wait queue things are getting called from, and on what type of object,
I can better think about fixing it properly.
Note that "next" is initialized to WAIT_QUEUE_HEAD(p), which cannot be
NULL unless "p" is a totally invalid pointer (in which case you'd get a
fault at the *p assignment anyway). And the "next = head" assignment
obviously only happens if head is non-NULL, so next cannot become NULL
there either.
Yes, I do believe it is some inode corruption/race. Mark Hemment sent
me some detailed analysis of some possible problems in the inode code,
which I will be looking into, so I think those bugs might be
percolating here in the form of corrupted inode wait queues...
---------------------------------------------////
Yow! 11.26 MB/s remote host TCP bandwidth & ////
199 usec remote TCP latency over 100Mb/s ////
ethernet. Beat that! ////
-----------------------------------------////__________ o
David S. Miller, davem@caip.rutgers.edu /_____________/ / // /_/ ><