Excerpts from Liu Bo's message of 2011-08-06 05:37:46 -0400: > We maintain the inode's logged_trans to avoid reloging it, but if we iput > the inode and reread it, we'll get logged_trans to zero. > > So when an inode is still in log tree, and transaction is not committed yet, > we do not iput the inode.
I know you've tried a few different methods for this, but I think this one will end up leading to OOM, since it pins the inodes in ram and we don't have a way for the inode shrinker to force a commit. So I took this code out and couldn't trigger my eexist oops anymore. I'm going through right now to make sure this isn't because someone took the BUG_ON out ;) The big problem was the code wasn't expecting to find previously logged items for the inode because the last trans field wasn't set. It seems like we should just be able to deal with these eexist returns without any real trouble? -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html