On 2015-10-14 at 13:05 +0300, Ivan Shapovalov wrote: > On 2015-10-12 at 11:07 +0200, Edward Shishkin wrote: > > [...] > > So, I've added three non-fatal checks right before > set_page_writeback(): > - PageDirty(pg) > - JF_ISSET(cur, JNODE_DIRTY) > - pg->mapping->host->i_wb != NULL > > In almost all times when either of the checks is triggered, > the first two checks are triggered at once (i. e. neither page nor > jnode is dirty, but i_wb is not NULL). This happens with both > formatted > nodes (jnode_is_znode), unformatted nodes (jnode_is_unformatted) and > other nodes. > > And, finally, there are very few warnings where jnode _is_ dirty, but > the page _isn't_. On the first such warning i_wb is also NULL. And, > just as you've suspected, this happens with an unformatted node. > > I'll try to add a backtrace buffer into struct jnode and generate a > backtrace there on each jnode dirtying attempt... and then print it > for > the problematic jnode. > So, here it is. On all occurrences the backtrace is the same. Oct 14 13:51:54 intelfx-laptop kernel: reiser4[xdg-user-dirs-g(2040)]: write_jnodes_to_disk_extent (fs/reiser4/wander.c:807)[intelfx-8888]:                                        WARNING: on writeback: jnode (unformatted): BAD-PAGE BAD-INODE-i_wb Oct 14 13:51:54 intelfx-laptop kernel: BAD-INODE-i_wb, stacktrace of last jnode dirtying follows:   [] save_stack_trace+0x2a/0x50 Oct 14 13:51:54 intelfx-laptop kernel:    [] jnode_make_dirty_locked+0xcf/0x770 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] insert_first_extent+0x211/0x610 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] reiser4_update_extent+0xe1/0x300 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] find_or_create_extent+0xa5/0x800 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] replace+0x11b/0x290 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] tail2extent+0x66a/0xcc0 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] unpack.isra.6+0x121/0x270 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] mmap_unix_file+0x12d/0x1c0 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] reiser4_mmap_dispatch+0x7e/0x320 [reiser4] Oct 14 13:51:54 intelfx-laptop kernel:    [] mmap_region+0x3d1/0x670 Oct 14 13:51:54 intelfx-laptop kernel:    [] do_mmap_pgoff+0x353/0x400 Oct 14 13:51:54 intelfx-laptop kernel:    [] vm_mmap_pgoff+0x71/0xc0 Oct 14 13:51:54 intelfx-laptop kernel:    [] SyS_mmap_pgoff+0x1dd/0x250 Oct 14 13:51:54 intelfx-laptop kernel:    [] SyS_mmap+0x16/0x20 Oct 14 13:51:54 intelfx-laptop kernel:    [] entry_SYSCALL_64_fastpath+0x12/0x6a -- Ivan Shapovalov / intelfx /