From: Andrey Borzenkov <arvidjaar@gmail.com>
To: grub-devel@gnu.org
Subject: Re: booting btrfs
Date: Tue, 15 Oct 2013 06:44:19 +0400 [thread overview]
Message-ID: <20131015064419.60a41579@opensuse.site> (raw)
In-Reply-To: <525C5BB9.9030607@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2454 bytes --]
В Mon, 14 Oct 2013 23:01:45 +0200
Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com> пишет:
> On 14.10.2013 22:45, Chris Murphy wrote:
> >
> > On Oct 14, 2013, at 1:29 PM, Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com> wrote:
> >
> >>> So it seems that GRUB is using relative pathnames to the default subvolume.
> >> This is not intentional. When this part of code was written there was no
> >> set-default available at all so this couldn't be tested and I simply
> >> followed the specification. It told to take root_tree and
> >> root_dir_objectid from superblock then go to "default" directory. What
> >> of this needs to be changed? Just remove "default" and make it part of
> >> path? We would need to change grub-mkrelpath to match runtime behaviour.
> >> Is there a way to detect that mountinfo gives garbage and somehow get
> >> where the real root points?
> >
> > Here's the response. It seems similar but not identical to what you described above.
> >
> > http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg27955.html
> >
> Possibly this is the answer:
> === modified file 'grub-core/fs/btrfs.c'
> --- grub-core/fs/btrfs.c 2013-01-21 01:33:46 +0000
> +++ grub-core/fs/btrfs.c 2013-10-14 21:00:53 +0000
> @@ -1217,7 +1217,7 @@
>
> *type = GRUB_BTRFS_DIR_ITEM_TYPE_DIRECTORY;
> *tree = data->sblock.root_tree;
> - key->object_id = data->sblock.root_dir_objectid;
> + key->object_id = grub_cpu_to_le64_compile_time (5);
> key->type = GRUB_BTRFS_ITEM_TYPE_DIR_ITEM;
> key->offset = 0;
> skip_default = 1;
>
>
>
Nope, the actual problem here is that find_path starts with looking up
"default". Which arguably it should not do, but simply interpret
path name as starting from top level.
If btrfs filesystem has subvolumes /sub1 and /sub2, even we have set
default to /sub2, it is still possible to mount /sub1 using explicit
"mount -o subvol=/sub1 ...". Given current grub implementation any
access outside of default subvolume is impossible.
But this also means that grub user level tools have to resolve all path
names to be absolute. It is possible - "btrfs subvolume list" gives you
subvolume paths, so this information is available.
And, BTW, subvolume can be inside of normal directory as well. I.e.
mkdir /dir
btrfs subvolume create /dir/sub
is legal. And you can still mount /dir/sub using option -o
subvol=/dir/sub.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
prev parent reply other threads:[~2013-10-15 2:44 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-13 18:04 booting btrfs Chris Murphy
2013-10-13 19:47 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-13 20:59 ` Chris Murphy
2013-10-13 23:31 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-13 23:58 ` Chris Murphy
2013-10-14 5:28 ` Andrey Borzenkov
2013-10-14 18:39 ` Chris Murphy
2013-10-14 19:29 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-14 20:20 ` Chris Murphy
2013-10-16 2:50 ` Andrey Borzenkov
2013-10-16 3:37 ` Chris Murphy
2013-10-28 0:44 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-19 16:13 ` Andrey Borzenkov
2013-12-19 18:14 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-20 3:24 ` Chris Murphy
2013-12-20 9:46 ` Michael Chang
2013-12-20 12:21 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-20 14:54 ` Michael Chang
2013-12-20 15:10 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-24 2:26 ` Michael Chang
2013-12-21 4:38 ` Chris Murphy
2013-12-21 7:18 ` Andrey Borzenkov
2013-12-23 4:45 ` Chris Murphy
2013-12-23 4:52 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-23 5:32 ` Chris Murphy
2013-12-24 3:16 ` Chris Murphy
2013-12-24 2:29 ` Michael Chang
2013-12-24 2:26 ` Michael Chang
2013-12-24 3:43 ` Chris Murphy
2013-12-24 3:46 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-24 3:57 ` Chris Murphy
2013-12-24 4:20 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-24 6:12 ` Chris Murphy
2013-12-24 6:25 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-24 7:28 ` Michael Chang
2013-12-24 7:46 ` Andrey Borzenkov
2013-12-31 4:10 ` Michael Chang
2014-01-10 18:23 ` Andrey Borzenkov
2014-01-13 5:05 ` Michael Chang
2014-01-13 5:34 ` Andrey Borzenkov
2014-01-13 9:12 ` Michael Chang
2014-01-13 13:08 ` Andrey Borzenkov
2014-01-14 4:16 ` Michael Chang
2014-01-21 8:09 ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-01-21 9:08 ` Michael Chang
2013-12-30 10:18 ` Michael Chang
2013-12-30 11:28 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-30 11:52 ` Andrey Borzenkov
2013-12-31 7:50 ` Michael Chang
2013-12-31 21:20 ` Chris Murphy
2014-01-02 5:17 ` Michael Chang
2014-01-07 17:55 ` Chris Murphy
2014-01-08 20:57 ` Chris Murphy
2014-01-09 10:03 ` Michael Chang
2014-01-09 19:29 ` Chris Murphy
2014-01-13 5:13 ` Michael Chang
2014-01-13 5:53 ` Chris Murphy
2013-12-31 4:02 ` Michael Chang
2013-10-14 20:45 ` Chris Murphy
2013-10-14 20:50 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-15 2:33 ` Andrey Borzenkov
2013-10-15 3:12 ` Chris Murphy
2013-10-15 16:58 ` Andrey Borzenkov
2013-10-15 19:47 ` Chris Murphy
2013-10-15 20:02 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-15 20:27 ` Chris Murphy
2013-10-16 2:45 ` Andrey Borzenkov
2013-10-16 3:30 ` Chris Murphy
2013-10-15 21:55 ` Chris Murphy
2013-10-14 21:01 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-14 23:09 ` Chris Murphy
2013-10-14 23:44 ` Chris Murphy
2013-10-15 2:44 ` Andrey Borzenkov [this message]
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=20131015064419.60a41579@opensuse.site \
--to=arvidjaar@gmail.com \
--cc=grub-devel@gnu.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).