Follow-up Comment #4, bug #46691 (project grub):
> GRUB also performs fsync() which should synchronize filesystem and
> block device state. What you describe sounds more like broken filsystem
> which fails to properly implement fsync(). Now, that was known and I
> won't mind adding workaround for this but I want to understand what we
> are trying to fix.
I still haven't came up to any kernel bug reports.
But as a theory, _not only on Linux_, when different process opens
a (device) file, one with O_DIRECT (I think Linux do this when mounting),
and other without O_DIRECT (grub), grub could grab stale data.
fsync() gurantees that it's written onto the (device) file,
which I confirmed during debugging, but kernel didn't
flush buffers held by process opened without O_DIRECT.
And this could be a *feature* of that operating system, not a bug.
So, IMHO if O_DIRECT is available, it's a lot safer and portable.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?46691>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-grub mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-grub