ofdisk: Exclude floppies from scanning.
It causes similar hang as CD on at least the qemu.
This commit is contained in:
parent
ef7c843b44
commit
967e5aa591
1 changed files with 8 additions and 8 deletions
|
@ -34,7 +34,7 @@ struct ofdisk_hash_ent
|
||||||
char *open_path;
|
char *open_path;
|
||||||
char *grub_devpath;
|
char *grub_devpath;
|
||||||
int is_boot;
|
int is_boot;
|
||||||
int is_cdrom;
|
int is_removable;
|
||||||
/* Pointer to shortest available name on nodes representing canonical names,
|
/* Pointer to shortest available name on nodes representing canonical names,
|
||||||
otherwise NULL. */
|
otherwise NULL. */
|
||||||
const char *shortest;
|
const char *shortest;
|
||||||
|
@ -123,7 +123,7 @@ ofdisk_hash_add_real (char *devpath)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
check_string_cdrom (const char *str)
|
check_string_removable (const char *str)
|
||||||
{
|
{
|
||||||
const char *ptr = grub_strrchr (str, '/');
|
const char *ptr = grub_strrchr (str, '/');
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ check_string_cdrom (const char *str)
|
||||||
ptr++;
|
ptr++;
|
||||||
else
|
else
|
||||||
ptr = str;
|
ptr = str;
|
||||||
return (grub_strncmp (ptr, "cdrom", 5) == 0);
|
return (grub_strncmp (ptr, "cdrom", 5) == 0 || grub_strncmp (ptr, "fd", 2) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct ofdisk_hash_ent *
|
static struct ofdisk_hash_ent *
|
||||||
|
@ -147,8 +147,8 @@ ofdisk_hash_add (char *devpath, char *curcan)
|
||||||
{
|
{
|
||||||
p->shortest = p->devpath;
|
p->shortest = p->devpath;
|
||||||
p->grub_shortest = p->grub_devpath;
|
p->grub_shortest = p->grub_devpath;
|
||||||
if (check_string_cdrom (devpath))
|
if (check_string_removable (devpath))
|
||||||
p->is_cdrom = 1;
|
p->is_removable = 1;
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,8 +158,8 @@ ofdisk_hash_add (char *devpath, char *curcan)
|
||||||
else
|
else
|
||||||
grub_free (curcan);
|
grub_free (curcan);
|
||||||
|
|
||||||
if (check_string_cdrom (devpath) || check_string_cdrom (curcan))
|
if (check_string_removable (devpath) || check_string_removable (curcan))
|
||||||
pcan->is_cdrom = 1;
|
pcan->is_removable = 1;
|
||||||
|
|
||||||
if (!pcan)
|
if (!pcan)
|
||||||
grub_errno = GRUB_ERR_NONE;
|
grub_errno = GRUB_ERR_NONE;
|
||||||
|
@ -330,7 +330,7 @@ grub_ofdisk_iterate (grub_disk_dev_iterate_hook_t hook, void *hook_data,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ent->is_boot && ent->is_cdrom)
|
if (!ent->is_boot && ent->is_removable)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (hook (ent->grub_shortest, hook_data))
|
if (hook (ent->grub_shortest, hook_data))
|
||||||
|
|
Loading…
Reference in a new issue