On Wed, Jun 21, 2017 at 02:21:15PM -0700, Tahsin Erdogan wrote: > In data=ordered mode jinode needs to be attached to the xattr inode when > writing data to it. Attachment normally occurs during file open for regular > files. Since we are not using file interface to write to the xattr inode, > the jinode attach needs to be done manually. > > Otherwise the following crash occurs in data=ordered mode. > > BUG: unable to handle kernel NULL pointer dereference at (null) > IP: jbd2_journal_file_inode+0x37/0x110 > PGD 13b3c0067 > P4D 13b3c0067 > PUD 137660067 > PMD 0 > > Oops: 0000 [#1] SMP > CPU: 3 PID: 1877 Comm: python Not tainted 4.12.0-rc1+ #749 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 > task: ffff88010e368980 task.stack: ffffc90000374000 > RIP: 0010:jbd2_journal_file_inode+0x37/0x110 > RSP: 0018:ffffc90000377980 EFLAGS: 00010246 > RAX: 0000000000000000 RBX: ffff880123b06230 RCX: 0000000000280000 > RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff88012c8585d0 > RBP: ffffc900003779b0 R08: 0000000000000202 R09: 0000000000000001 > R10: 0000000000000000 R11: 0000000000000400 R12: ffff8801111f81c0 > R13: ffff88013b2b6800 R14: ffffc90000377ab0 R15: 0000000000000001 > FS: 00007f0c99b77740(0000) GS:ffff88013fd80000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 0000000000000000 CR3: 0000000136d91000 CR4: 00000000000006e0 > Call Trace: > jbd2_journal_inode_add_write+0xe/0x10 > ext4_map_blocks+0x59e/0x620 > ext4_xattr_set_entry+0x501/0x7d0 > ext4_xattr_block_set+0x1b2/0x9b0 > ext4_xattr_set_handle+0x322/0x4f0 > ext4_xattr_set+0x144/0x1a0 > ext4_xattr_user_set+0x34/0x40 > __vfs_setxattr+0x66/0x80 > __vfs_setxattr_noperm+0x69/0x1c0 > vfs_setxattr+0xa2/0xb0 > setxattr+0x12e/0x150 > path_setxattr+0x87/0xb0 > SyS_setxattr+0xf/0x20 > entry_SYSCALL_64_fastpath+0x18/0xad > > Signed-off-by: Tahsin Erdogan <tahsin@xxxxxxxxxx> Thanks, applied. - Ted