* grub-core/kern/fs.c (grub_fs_probe) [GRUB_UTIL]: Add workaround for

btrfs.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-05-04 00:36:23 +02:00
parent 19424d942b
commit 076aeb5022
2 changed files with 22 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2012-05-04 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/fs.c (grub_fs_probe) [GRUB_UTIL]: Add workaround for
btrfs.
2012-05-04 Vladimir Serbinenko <phcoder@gmail.com> 2012-05-04 Vladimir Serbinenko <phcoder@gmail.com>
* docs/grub.cfg: Update. * docs/grub.cfg: Update.

View file

@ -53,6 +53,22 @@ grub_fs_probe (grub_device_t device)
for (p = grub_fs_list; p; p = p->next) for (p = grub_fs_list; p; p = p->next)
{ {
grub_dprintf ("fs", "Detecting %s...\n", p->name); grub_dprintf ("fs", "Detecting %s...\n", p->name);
/* This is evil: newly-created just mounted BtrFS after copying all
GRUB files has a very peculiar unrecoverable corruption which
will be fixed at sync but we'd rather not do a global sync and
syncing just files doesn't seem to help. Relax the check for
this time. */
#ifdef GRUB_UTIL
if (grub_strcmp (p->name, "btrfs") == 0)
{
char *label = 0;
p->uuid (device, &label);
if (label)
grub_free (label);
}
else
#endif
(p->dir) (device, "/", dummy_func); (p->dir) (device, "/", dummy_func);
if (grub_errno == GRUB_ERR_NONE) if (grub_errno == GRUB_ERR_NONE)
return p; return p;