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@xxxxxxxxxx> 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? Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR