On Fri, Oct 22, 2010 at 01:34:44PM +1100, Nick Piggin wrote:
Look at the code. You are overengineering it. We do *not* need a framework
for messing with these lists in arbitrary ways. Where would we need to
do that to an inode we don't hold a reference to or had placed I_FREEING
on and would need i_lock held by caller? Even assuming that we need to
keep [present in hash, present on sb list] in sync (which I seriously doubt),
we can bloody well grab both locks before i_lock.
Code outside of fs/inode.c and fs/fs-writeback.c generally has no business
looking at the full icache state, period.
--