Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
emulab
emulab-grub2
Commits
478182a8
Commit
478182a8
authored
Apr 08, 2011
by
Vladimir 'phcoder' Serbinenko
Browse files
* grub-core/kern/emu/hostdisk.c (open_device): Sync on close and not
on open. (grub_util_biosdisk_close): Likewise.
parent
72a89a54
Changes
2
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
478182a8
2011-04-08 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/emu/hostdisk.c (open_device): Sync on close and not
on open.
(grub_util_biosdisk_close): Likewise.
2011-04-08 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/emu/getroot.c (grub_util_get_grub_dev): Add missing
grub-core/kern/emu/hostdisk.c
View file @
478182a8
...
...
@@ -664,7 +664,17 @@ open_device (const grub_disk_t disk, grub_disk_addr_t sector, int flags)
{
free
(
data
->
dev
);
if
(
data
->
fd
!=
-
1
)
close
(
data
->
fd
);
{
if
(
data
->
access_mode
==
O_RDWR
||
data
->
access_mode
==
O_WRONLY
)
{
fsync
(
data
->
fd
);
#ifdef __linux__
ioctl
(
data
->
fd
,
BLKFLSBUF
,
0
);
#endif
}
close
(
data
->
fd
);
}
/* Open the partition. */
grub_dprintf
(
"hostdisk"
,
"opening the device `%s' in open_device()
\n
"
,
dev
);
...
...
@@ -675,10 +685,6 @@ open_device (const grub_disk_t disk, grub_disk_addr_t sector, int flags)
return
-
1
;
}
/* Flush the buffer cache to the physical disk.
XXX: This also empties the buffer cache. */
ioctl
(
fd
,
BLKFLSBUF
,
0
);
data
->
dev
=
xstrdup
(
dev
);
data
->
access_mode
=
(
flags
&
O_ACCMODE
);
data
->
fd
=
fd
;
...
...
@@ -716,7 +722,16 @@ open_device (const grub_disk_t disk, grub_disk_addr_t sector, int flags)
{
free
(
data
->
dev
);
if
(
data
->
fd
!=
-
1
)
close
(
data
->
fd
);
{
if
(
data
->
access_mode
==
O_RDWR
||
data
->
access_mode
==
O_WRONLY
)
{
fsync
(
data
->
fd
);
#ifdef __linux__
ioctl
(
data
->
fd
,
BLKFLSBUF
,
0
);
#endif
}
close
(
data
->
fd
);
}
fd
=
open
(
map
[
disk
->
id
].
device
,
flags
);
if
(
fd
>=
0
)
...
...
@@ -932,7 +947,16 @@ grub_util_biosdisk_close (struct grub_disk *disk)
free
(
data
->
dev
);
if
(
data
->
fd
!=
-
1
)
close
(
data
->
fd
);
{
if
(
data
->
access_mode
==
O_RDWR
||
data
->
access_mode
==
O_WRONLY
)
{
fsync
(
data
->
fd
);
#ifdef __linux__
ioctl
(
data
->
fd
,
BLKFLSBUF
,
0
);
#endif
}
close
(
data
->
fd
);
}
free
(
data
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment