lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <94ee7fda-68d8-4720-b95c-10783f2e51a5@salutedevices.com>
Date: Tue, 9 Jul 2024 19:18:01 +0300
From: George Stark <gnstark@...utedevices.com>
To: Christoph Hellwig <hch@...radead.org>
CC: <linux-kernel@...r.kernel.org>, <kernel@...utedevices.com>
Subject: Re: [PATCH 1/1] initrd: use O_SYNC flag while opening /dev/ram for
 write

Hello Christoph

Thanks for the review

On 7/9/24 09:03, Christoph Hellwig wrote:
> On Mon, Jul 08, 2024 at 11:09:23PM +0300, George Stark wrote:
>> initrd image is written to the /dev/ram block device using filp_open(),
>> kernel_write()
> 
> First question: why are you using the legacy initrd and not initramfs?

I was playing around with initrd to have ability to mount initrd fs from 
disk after switching to main root and use files from it. We can't mount 
initramfs image. In embedded system mounting vs extracting makes a 
difference due to resource limitations. In the end we dropped that idea
partly because of initrd is marked as deprecated.
But since it has been deprecated since 2020 and it's still there I 
thought may be it was used by someone so this patch was worth publishing.

If initrd really counts its last days then this patch can be thrown away.

> 
>> . After fput() /dev/ram is mounted and may fail due to not
>> all data is actually written to the device yet. The mount error remains
>> hidden due to MS_SILENT flag usage and mount_root_generic has retries.
>> So use O_SYNC flag to have all data written to /dev/ram before mounting.
> 
> O_SYNC is highly inefficient.  If you have a valid reason to care about
> a corner case in the hopefully soon to be remvoved legacy initrd code,
> the right way to do this is a single fdatasync after the writes have
> finished.

Ok.

-- 
Best regards
George

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ