[PATCH] Cygwin: fsync: Return EINVAL for special files.
Corinna Vinschen
corinna-cygwin@cygwin.com
Mon Mar 14 09:50:26 GMT 2022
On Mar 12 06:37, Takashi Yano wrote:
> - Unlike linux, fsync() calls FlushFileBuffers() even for special
> files. This cause the problem reported in:
> https://cygwin.com/pipermail/cygwin/2022-March/251022.html
> This patch fixes the issue.
> ---
> winsup/cygwin/fhandler.cc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
> index 98d7a3b2d..fc7bf0a0e 100644
> --- a/winsup/cygwin/fhandler.cc
> +++ b/winsup/cygwin/fhandler.cc
> @@ -1750,7 +1750,7 @@ fhandler_base::utimens (const struct timespec *tvp)
> int
> fhandler_base::fsync ()
> {
> - if (!get_handle () || nohandle ())
> + if (!get_handle () || nohandle () || pc.isspecial ())
> {
> set_errno (EINVAL);
> return -1;
> --
> 2.35.1
Ouch, yeah, that's obvious.
Thanks,
Corinna
More information about the Cygwin-patches
mailing list