Re: [PATCH RFC] gen_init_cpio: Do fsync() only on regular files
From: David Disseldorp
Date: Tue Oct 07 2025 - 01:57:43 EST
On Mon, 6 Oct 2025 21:40:03 -0700, Christoph Hellwig wrote:
> On Tue, Oct 07, 2025 at 12:55:03AM +0100, Dmitry Safonov via B4 Relay wrote:
> > From: Dmitry Safonov <dima@xxxxxxxxxx>
> >
> > Here at Arista gen_init_cpio is used in testing in order to create
> > an initramfs for specific tests. Most notably, there is a test that does
> > essentially a fork-bomb in kdump/panic kernel, replacing build-time
> > generated init script: instead of doing makedumpfile, it does call
> > shell tests.
>
> Why is is using fsync at all? Seems like this was added in
>
> commit ae18b94099b04264b32e33b057114024bc72c993
> Author: David Disseldorp <ddiss@xxxxxxx>
> Date: Tue Aug 19 13:05:45 2025 +1000
>
> gen_init_cpio: support -o <output_file> parameter
>
> without any good explanation. In general doing a per-file fsync
> is going to horrible wreck performance, and given that no one is
> interested in partial initramfs archives also rather pointless.
I should have explained why in the commit, sorry. The intention was to
catch any FS I/O errors during output archive writeback. fsync() is
called only once as the final I/O.