Re: [PATCH 05/32] ext4: attach jinode after creation of xattr inode

From: Theodore Ts'o
Date: Wed Jun 21 2017 - 21:26:20 EST


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