> > Provide generic functionality that can be used by filesystems that have> > their own inode caches to also tie into the defragmentation functions> > that are made available here.> > Yes, this is tricky stuff. I have vague ancestral memories that the sort> of inode work which you refer to here can cause various deadlocks, lockdep> warnings and such nasties when if we attempt to call it from the wrong> context (ie: from within fs code).

Right that is likelyi the reason why Michael did his stress test...

> Possibly we could prevent that by skipping all this code if the caller> didn't have __GFP_FS.

We do. Look at the earlier patch.

> I trust all the code in kick_inodes() was carefuly copied from > prue_icache() and such places - I didn't check it.

Yup tried to remain faithful to that. We could increase the usefulness if I could take more liberties with the code in order to actually move an item instead of simply reclaiming. But its better to first have a proven correct solution before doing more work on that.