> My guess would be that the inode in question is a directory inode, > and that there are temp files there, or a lot of open files, but > that is just a ballpark guess. Correct. A sample program to reproduce this problem is enclosed. When a diradd dependency that causes a newdirblk dependency to be allocated is made obsolete in newdirrem(), the pagedep structure is likely to be freed without first removing the newdirblk dependency that still points to the pagedep structure. - Tor Egge
#!/bin/sh dovmstat() { vmstat -m | awk '/^ *(mkdir|newdirblk|dirrem|diradd|pagedep)/ { print }' } dovmstat rm -rf a dirrems=`vmstat -m | awk '/^ *dirrem/ { print $2 }'` while test $dirrems -gt 0 do sync sleep 1 dirrems=`vmstat -m | awk '/^ *dirrem/ { print $2 }'` done mkdir a mkdirs=`vmstat -m | awk '/^ *mkdir/ { print $2 }'` while test $mkdirs -gt 0 do sync sleep 1 mkdirs=`vmstat -m | awk '/^ *mkdir/ { print $2 }'` done dovmstat touch a/0000000000000000000000000000000000000000000000000000000 dovmstat touch a/0000000000000000000000000000000000000000000000000000001 dovmstat touch a/0000000000000000000000000000000000000000000000000000002 dovmstat touch a/0000000000000000000000000000000000000000000000000000003 dovmstat touch a/0000000000000000000000000000000000000000000000000000004 dovmstat touch a/0000000000000000000000000000000000000000000000000000005 dovmstat touch a/0000000000000000000000000000000000000000000000000000006 dovmstat touch a/0000000000000000000000000000000000000000000000000000007 dovmstat touch a/0000000000000000000000000000000000000000000000000000007 dovmstat touch a/0000000000000000000000000000000000000000000000000000008 dovmstat touch a/0000000000000000000000000000000000000000000000000000009 dovmstat touch a/000000000000000000000000000000000000000000000000000000a dovmstat touch a/000000000000000000000000000000000000000000000000000000b dovmstat touch a/000000000000000000000000000000000000000000000000000000c dovmstat touch a/000000000000000000000000000000000000000000000000000000d dovmstat touch a/000000000000000000000000000000000000000000000000000000e dovmstat touch a/000000000000000000000000000000000000000000000000000000f dovmstat rm a/000000000000000000000000000000000000000000000000000000f dovmstat ls -ld a dovmstat rm -rf a dovmstat echo FINISHED