From: Chris Mason <chris.mason@oracle.com>
To: Josef Bacik <josef@redhat.com>
Cc: Phillip Susi <psusi@cfl.rr.com>, Miao Xie <miaox@cn.fujitsu.com>,
WuBo <wu.bo@cn.fujitsu.com>,
linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] Btrfs: don't panic if orphan item already exists
Date: Wed, 14 Dec 2011 11:45:24 -0500 [thread overview]
Message-ID: <20111214164524.GE31158@shiny> (raw)
In-Reply-To: <20111214153438.GA10175@localhost.localdomain>
On Wed, Dec 14, 2011 at 10:34:45AM -0500, Josef Bacik wrote:
> On Wed, Dec 14, 2011 at 10:14:13AM -0500, Phillip Susi wrote:
> > On 12/14/2011 9:58 AM, Josef Bacik wrote:
> > >There is no "underlying bug", there is a shitty situation, the shitty situation
> >
> > Maybe my assumptions are wrong somewhere then. You add the orphan
> > item to make sure that the truncate will be finalized even if the
> > system crashes before the transaction commits right? So if
> > truncate() fails with -ENOSPC, then you shouldn't be trying to
> > finalize the truncate on the next mount, should you ( because the
> > call did not succeed )?
> >
>
> Yes because otherwise we'll leak space since the i_size has been updated
> already. The other option is to make btrfs_truncate_inode_items update i_size
> as we truncate so if it fails we can delete the orphan item and then update the
> inode with the new i_size, that way we don't leave the orphan item on disk and
> we don't leak space. I'll see how doable this is. Thanks,
If we fail with enospc though we're very likely to not be able to update
the inode item. It may work, but the failure case will still be there
where we can't make i_size match the file contents.
-chris
next prev parent reply other threads:[~2011-12-14 16:45 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-13 17:55 [PATCH] Btrfs: don't panic if orphan item already exists Josef Bacik
2011-12-13 19:03 ` Phillip Susi
2011-12-13 19:09 ` Josef Bacik
2011-12-14 2:07 ` WuBo
2011-12-14 9:46 ` Miao Xie
2011-12-14 14:58 ` Josef Bacik
2011-12-14 15:14 ` Phillip Susi
2011-12-14 15:27 ` Josef Bacik
2011-12-14 15:41 ` Phillip Susi
2011-12-14 15:46 ` Josef Bacik
2011-12-14 19:59 ` Phillip Susi
2011-12-14 15:34 ` Josef Bacik
2011-12-14 15:35 ` Josef Bacik
2011-12-14 16:45 ` Chris Mason [this message]
2011-12-14 16:47 ` Josef Bacik
2011-12-15 1:42 ` Miao Xie
2011-12-15 1:56 ` WuBo
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=20111214164524.GE31158@shiny \
--to=chris.mason@oracle.com \
--cc=josef@redhat.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=miaox@cn.fujitsu.com \
--cc=psusi@cfl.rr.com \
--cc=wu.bo@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).