Commit 5ca1a64d authored by Vladimir 'phcoder' Serbinenko's avatar Vladimir 'phcoder' Serbinenko
Browse files

* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_data): New member

	is_disk.
	(grub_util_biosdisk_open): Don't apply ioctl on non-disk devices.
	(open_device) Likewise.
	(grub_util_biosdisk_close): Likewise.
	Reported by: Mark Korenberger.
parent cbac5b1e
2011-04-10 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_data): New member
is_disk.
(grub_util_biosdisk_open): Don't apply ioctl on non-disk devices.
(open_device) Likewise.
(grub_util_biosdisk_close): Likewise.
Reported by: Mark Korenberger.
2011-04-10 Alexander Kurtz <kurtz.alex@googlemail.com>
 
* util/grub-mkconfig_lib.in: Add missing quotes.
......@@ -138,6 +138,7 @@ struct grub_util_biosdisk_data
char *dev;
int access_mode;
int fd;
int is_disk;
};
#ifdef __linux__
......@@ -239,6 +240,7 @@ grub_util_biosdisk_open (const char *name, grub_disk_t disk)
data->dev = NULL;
data->access_mode = 0;
data->fd = -1;
data->is_disk = 0;
/* Get the size. */
#if defined(__MINGW32__)
......@@ -279,6 +281,7 @@ grub_util_biosdisk_open (const char *name, grub_disk_t disk)
close (fd);
goto fail;
}
data->is_disk = 1;
# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
if (ioctl (fd, DIOCGMEDIASIZE, &nr))
......@@ -669,7 +672,8 @@ open_device (const grub_disk_t disk, grub_disk_addr_t sector, int flags)
{
fsync (data->fd);
#ifdef __linux__
ioctl (data->fd, BLKFLSBUF, 0);
if (data->is_disk)
ioctl (data->fd, BLKFLSBUF, 0);
#endif
}
......@@ -727,7 +731,8 @@ open_device (const grub_disk_t disk, grub_disk_addr_t sector, int flags)
{
fsync (data->fd);
#ifdef __linux__
ioctl (data->fd, BLKFLSBUF, 0);
if (data->is_disk)
ioctl (data->fd, BLKFLSBUF, 0);
#endif
}
close (data->fd);
......@@ -952,7 +957,8 @@ grub_util_biosdisk_close (struct grub_disk *disk)
{
fsync (data->fd);
#ifdef __linux__
ioctl (data->fd, BLKFLSBUF, 0);
if (data->is_disk)
ioctl (data->fd, BLKFLSBUF, 0);
#endif
}
close (data->fd);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment