On Mon, 2010-06-07 at 14:17 -0700, Linus Torvalds wrote:
and that changelog doesn't really explain it either ("fix leak"? Ok, I can see the iput() fixing the leak - but you also did that jffs2_clear_inode() change, and that has no explanation what-so-ever.
jffs2_clear_inode() is the file system's ->clear_inode method, so it gets called from the VFS when the inode is destroyed, after iput().
I suppose that ought to have been a clue, right from the very beginning, that we should never have been calling it directly on our error paths.