From: Li Zefan <lizf@cn.fujitsu.com>
To: Chris Mason <chris.mason@oracle.com>
Cc: Josef Bacik <josef@redhat.com>,
linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH] Btrfs: use the normal checksumming infrastructure for free space cache
Date: Mon, 13 Jun 2011 10:05:25 +0800 [thread overview]
Message-ID: <4DF57065.3090109@cn.fujitsu.com> (raw)
In-Reply-To: <1307929964-sup-6781@shiny>
Chris Mason wrote:
> Excerpts from Li Zefan's message of 2011-06-12 21:52:32 -0400:
>> Josef Bacik wrote:
>>> We used to store the checksums of the space cache directly in the space cache,
>>> however that doesn't work out too well if we have more space than we can fit the
>>> checksums into the first page. So instead use the normal checksumming
>>> infrastructure. There were problems with doing this originally but those
>>> problems don't exist now so this works out fine. Thanks,
>>>
>>
>> This looks great, so I'll drop my patch that extends the original code to
>> allow more than 1 crc page.
>
> I do like them a lot, but what happens when a special case crc kernel
> mounts a free space cache created by this patch?
>
So we need a check, like the one in load_free_space_cache():
@@ -2650,6 +2650,11 @@ int load_free_ino_cache(struct btrfs_fs_info *fs_info, st
if (IS_ERR(inode))
goto out;
+ if (BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM) {
+ printk(KERN_INFO "Old style space inode found, converting.\n");
+ BTRFS_I(inode)->flags &= ~BTRFS_INODE_NODATASUM;
+ }
+
if (root_gen != BTRFS_I(inode)->generation)
goto out_put;
then we'll not trying to load the cache from disk but reconstruct the
cache by searching the fs tree.
next prev parent reply other threads:[~2011-06-13 2:05 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-10 19:40 [PATCH] Btrfs: use the normal checksumming infrastructure for free space cache Josef Bacik
2011-06-13 1:52 ` Li Zefan
2011-06-13 1:53 ` Chris Mason
2011-06-13 2:05 ` Li Zefan [this message]
2011-06-13 2:10 ` Li Zefan
2011-06-13 2:20 ` Li Zefan
2011-06-13 14:11 ` Chris Mason
2011-06-13 14:26 ` Josef Bacik
2011-06-13 13:56 ` Josef Bacik
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=4DF57065.3090109@cn.fujitsu.com \
--to=lizf@cn.fujitsu.com \
--cc=chris.mason@oracle.com \
--cc=josef@redhat.com \
--cc=linux-btrfs@vger.kernel.org \
/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).