[U-Boot] [PATCH] tools/fw_env: use fsync to ensure that data is physically stored
Mark Jackson
mpfj-list at newflow.co.uk
Wed May 22 17:33:52 CEST 2013
On 21/05/13 18:34, Michael Heimpold wrote:
> Hi Wolfgang Denx,
>
>>> Closing a file descriptor does not guarantee that the data has been
>>> successfully saved to disk, as the kernel might defer the write.
>>
>> What is the exact problem you are trying to fix?
>>
>> I mean, when exactly does adding the sync play a role?
>
> I'm using fw_setenv during system update process. The sequence
> of such a shell script is something like (much simplified):
>
> ...
> fw_setenv state=2
> dd if=... of=/dev/mmcblk0...
> fw_setenv state=1
> ...
> reboot
Not sure what final "OS" environment you're running, but I would think
that "reboot" would sync for you ?
For instance, under BusyBox, we have:-
# reboot --help
BusyBox v1.14.0 (2012-02-15 10:28:26 GMT) multi-call binary
Usage: reboot [-d delay] [-n] [-f]
Reboot the system
Options:
-d Delay interval for rebooting
-n No call to sync()
-f Force reboot (don't go through init)
... and under Ubuntu, we have ...
$ reboot --help
Usage: reboot [OPTION]...
Reboot the system.
Options:
-n, --no-sync don't sync before reboot or halt
...
So by default, reboot would (should ?) call sync automatically.
This might point to some other issue ?
Mark J.
More information about the U-Boot
mailing list