From: Michael Welsh Duggan <mwd@md5i.com>
To: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] Btrfs-progs: receive: fix the case that we can not find subvolume
Date: Tue, 17 Dec 2013 22:29:23 -0500 [thread overview]
Message-ID: <8761qmsup8.fsf@maru2.md5i.com> (raw)
In-Reply-To: 52B10EBE.4030508@cn.fujitsu.com
Miao Xie <miaox@cn.fujitsu.com> writes:
> On Tue, 17 Dec 2013 10:40:41 -0500, Michael Welsh Duggan wrote:
>> David Sterba <dsterba@suse.cz> writes:
>>
>>> On Tue, Dec 17, 2013 at 05:13:49PM +0800, Wang Shilong wrote:
>>>> If we change our default subvolume, btrfs receive will fail to find
>>>> subvolume. To fix this problem, i have two ideas.
>>>>
>>>> 1.make btrfs snapshot ioctl support passing source subvolume's
>>>> objectid
>>>
>>>> 2.when we want to using interval subvolume path, we mount it other
>>>> place
>>>> that use subvolume 5 as its default subvolume.
>>>
>>> 3. Tell the user to mount the toplevel subvol by himself and run
>>> receive
>>> again
>>
>> Ugh. I hope that would be considered a short-term hack waiting for a
>> better solution, perhaps requiring a kernel upgrade. From a user's
>> perspective there is no reason this should be necessary, and requiring
>> this would be extraordinarily surprising. "Why is btrfs unable to find
>> my snapshot? It's right there!" Moreover, this used to work just fine
>> in previous versions of btrfs-progs.
>
> Though the snapshot is still in the fs, it is inaccessible because you
> mount
> some subvolume as the root, and you can not find the path to the snapshot.
>
> For example:
> There are two subvolumes in the fs, and they are in the root directory
> of the
> fs, just like
> real root directory
> |->subv0
> |->subv1
>
> Then if you mount the subv1 as the root directory, the real root
> directory of
> the fs and subv0 will be shielded,
> +-------------------+
> |real root directory|
> | |->subv0 |
> +-------------------+
> |->subv1
> you can only access the files, directories, subvolumes... in the subv1. So the tool
> will report "can not find ...."
>
> BTW, it is impossible that the previous version of btrfs-progs can work well in
> this case.
In that case I either misunderstand completely, or my problem is almost
decidedly different. To recap, this is the command that failed:
# ./btrfs send -p /snapshots/bo /snapshots/bp | ./btrfs receive /backup/snapshots/root/
At subvol /snapshots/bp
At snapshot bp
ioctl(BTRFS_IOC_TREE_SEARCH, uuid, key 48f0ebae83fd32f1, UUID_KEY, 90139d8200afeaab) ret=-1, error: No such file or directory
ioctl(BTRFS_IOC_TREE_SEARCH, uuid, key 48f0ebae83fd32f1, UUID_KEY, 90139d8200afeaab) ret=-1, error: No such file or directory
ERROR: could not find parent subvolume
Now, I believe you are saying that this means that it can't find the
"bo" snapshot in the backup volume. But it is mounted in the expected
location:
# ls -ld /backup/snapshots/root/bo/
drwxr-xr-x 1 root root 280 Dec 13 17:54 /backup/snapshots/root/bo/
and
# ./btrfs sub list -p /backup/ | grep root/bo
ID 1030 gen 1046 parent 5 top level 5 path snapshots/root/bo
# btrfs sub show /backup/snapshots/root/bo/
/backup/snapshots/root/bo
Name: bo
uuid: 5e15ef24-f2d0-194f-886d-3f7afc7413a4
Parent uuid: 9a226af3-8497-744b-90f7-d7e54d58946d
Creation time: 2013-12-13 17:51:57
Object ID: 1030
Generation (Gen): 1046
Gen at creation: 1042
Parent: 5
Top Level: 5
Flags: readonly
Snapshot(s):
Maybe I am missing some terminology here? Is there some output I can
send to make the problem clearer?
--
Michael Welsh Duggan
(md5i@md5i.com)
next prev parent reply other threads:[~2013-12-18 3:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 9:13 [PATCH] Btrfs-progs: receive: fix the case that we can not find subvolume Wang Shilong
2013-12-17 15:09 ` David Sterba
2013-12-17 15:27 ` Wang Shilong
2013-12-17 15:40 ` Michael Welsh Duggan
2013-12-18 2:55 ` Miao Xie
2013-12-18 3:29 ` Michael Welsh Duggan [this message]
2013-12-18 3:54 ` Wang Shilong
2013-12-18 4:06 ` Michael Welsh Duggan
2013-12-18 5:03 ` Wang Shilong
2013-12-18 20:57 ` Michael Welsh Duggan
2013-12-20 2:33 ` Michael Welsh Duggan
2013-12-19 16:48 ` David Sterba
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=8761qmsup8.fsf@maru2.md5i.com \
--to=mwd@md5i.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.