https://bugzilla.kernel.org/show_bug.cgi?id=200753 --- Comment #17 from Theodore Tso (tytso@xxxxxxx) --- I see your problem. Your dm-io.c is broken: printk(KERN_INFO "WRITE block = %lu ",bio->bi_iter.bi_sector / 8); bno = bio->bi_iter.bi_sector / 8; if( mdt->error && bno == mdt->errorBlockNumber && mdt->mode != 'R') { printk("WRITE ERROR!!\n"); printk(KERN_INFO "%s():ERROR ON block = %lu\n",__func__,(bio->bi_iter.bi_sector / 8) - 1); bio_endio(bio); // bio_io_error(bio); return DM_MAPIO_SUBMITTED; It wasn't actually return an error to file system! Once I fixed your dm-io, I confirmed that errors to the journal do in fact cause a jbd2 error to be logged in dmesg: [18995.919032] WRITE ERROR!! [18995.919039] io_map():ERROR ON block = 196609 [18995.919251] Aborting journal on device dm-18-8. [18995.919278] WRITE block = 196608 [18998.747065] READ block = 204 [18998.747258] WRITE block = 0 [18998.748982] EXT4-fs error (device dm-18): ext4_journal_check_start:61: Detected aborted journal [18998.749199] EXT4-fs (dm-18): Remounting filesystem read-only Given your assertion that write errors to the journal don't cause the kernel to complain, and I have just demonstrated that errors to the journal *do* cause the kernel to complain, the reliability of your other observations are seriously called into question. Combined with your fundamental misunderstandings of how file systems work (including how buffered writes work, and how symlinks work), I'm going to gently suggest that you spend some time gathering a much deeper understanding of how kernel storage works before you waste more kernel developers time.... -- You are receiving this mail because: You are watching the assignee of the bug.