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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 17 Jun 2020 21:44:35 +0800 From: "zhangyi (F)" <yi.zhang@...wei.com> To: Jan Kara <jack@...e.cz> CC: <linux-ext4@...r.kernel.org>, <tytso@....edu>, <adilger.kernel@...ger.ca>, <zhangxiaoxu5@...wei.com>, <linux-fsdevel@...r.kernel.org> Subject: Re: [PATCH v2 3/5] ext4: detect metadata async write error when getting journal's write access On 2020/6/17 20:41, Jan Kara wrote: > On Wed 17-06-20 19:59:45, zhangyi (F) wrote: >> Although we have already introduce s_bdev_wb_err_work to detect and >> handle async write metadata buffer error as soon as possible, there is >> still a potential race that could lead to filesystem inconsistency, >> which is the buffer may reading and re-writing out to journal before >> s_bdev_wb_err_work run. So this patch detect bdev mapping->wb_err when >> getting journal's write access and also mark the filesystem error if >> something bad happened. >> >> Signed-off-by: zhangyi (F) <yi.zhang@...wei.com> > > So instead of all this, cannot we just do: > > if (work_pending(sbi->s_bdev_wb_err_work)) > flush_work(sbi->s_bdev_wb_err_work); > > ? And so we are sure the filesystem is aborted if the abort was pending? > Thanks for this suggestion. Yeah, we could do this, it depends on the second patch, if we check and flush the pending work here, we could not use the end_buffer_async_write() in ext4_end_buffer_async_write(), we need to open coding ext4_end_buffer_async_write() and queue the error work before the buffer is unlocked, or else the race is still there. Do you agree ? Thanks, Yi.
Powered by blists - more mailing lists