From: Chris Mason <chris.mason@oracle.com>
To: Liu Bo <liubo2009@cn.fujitsu.com>
Cc: linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH 11/12 v5] Btrfs: do not iput inode when inode is still in log
Date: Sun, 16 Oct 2011 20:30:07 -0400 [thread overview]
Message-ID: <1318811223-sup-6400@shiny> (raw)
In-Reply-To: <1312623467-31487-12-git-send-email-liubo2009@cn.fujitsu.com>
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
next prev parent reply other threads:[~2011-10-17 0:30 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-06 9:37 [PATCH 00/12 v5] Btrfs: improve write ahead log with sub transaction Liu Bo
2011-08-06 9:37 ` [PATCH 01/12 v5] Revert "Btrfs: do not flush csum items of unchanged file data during treelog" Liu Bo
2011-08-06 9:37 ` [PATCH 02/12 v5] Btrfs: introduce sub transaction stuff Liu Bo
2011-08-09 17:25 ` Mitch Harder
2011-08-06 9:37 ` [PATCH 03/12 v5] Btrfs: update block generation if should_cow_block fails Liu Bo
2011-08-06 9:37 ` [PATCH 04/12 v5] Btrfs: modify btrfs_drop_extents API Liu Bo
2011-08-06 9:37 ` [PATCH 05/12 v5] Btrfs: introduce first sub trans Liu Bo
2011-08-06 9:37 ` [PATCH 06/12 v5] Btrfs: still update inode trans stuff when size remains unchanged Liu Bo
2011-08-06 9:37 ` [PATCH 07/12 v5] Btrfs: improve log with sub transaction Liu Bo
2011-08-06 9:37 ` [PATCH 08/12 v5] Btrfs: add checksum check for log Liu Bo
2011-08-06 9:37 ` [PATCH 09/12 v5] Btrfs: fix a bug of log check Liu Bo
2011-08-06 9:37 ` [PATCH 10/12 v5] Btrfs: kick off useless code Liu Bo
2011-08-06 9:37 ` [PATCH 11/12 v5] Btrfs: do not iput inode when inode is still in log Liu Bo
2011-10-17 0:30 ` Chris Mason [this message]
2011-10-17 5:22 ` Liu Bo
2011-08-06 9:37 ` [PATCH 12/12 v5] Btrfs: use the right generation number to read log_root_tree Liu Bo
2011-09-01 17:38 ` [PATCH 00/12 v5] Btrfs: improve write ahead log with sub transaction Mitch Harder
2011-09-02 0:42 ` Liu Bo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1318811223-sup-6400@shiny \
--to=chris.mason@oracle.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=liubo2009@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).