Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Jul 2020 22:05:17 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Eugene Grosbein <eugen@grosbein.net>
Cc:        Freebsd hackers list <freebsd-hackers@freebsd.org>
Subject:   Re: fsync(2)
Message-ID:  <20200712190517.GA44314@kib.kiev.ua>
In-Reply-To: <0cdc3315-0213-8522-c8d6-695c2ee02923@grosbein.net>
References:  <0cdc3315-0213-8522-c8d6-695c2ee02923@grosbein.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 13, 2020 at 01:49:22AM +0700, Eugene Grosbein wrote:
> Hi!
> 
> Assume we have parent process that created a file and keeps it open not writing anything there.
> The parent spawns a child passing file name and the child opens it,
> fills it with data and exits without fsync()'ing the file.
> 
> In case of UFS there is upto 30 seconds time gap when file size is not updated,
> so if crash occurs, the file ends up empty.
> 
> The question: will fsync() in parent work for such still open file descriptor?

fsync() syncs the vnode, not the file or file descriptor. So fsync() on
any file descriptor referencing the same vnode, is enough to ensure that
the data is written to the underlying volume.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200712190517.GA44314>