NFS41: fix list splice type
We want to move commiting pages to pages list instead.
Otherwise it causes pnfs small writes crash like:
[34560.037692] BUG: unable to handle kernel NULL pointer dereference at
0000000000000068
[34560.038557] IP: [<
ffffffffa05423d6>] nfs_init_commit+0x26/0x130 [nfs]
[34560.039400] PGD
69f5a067 PUD
69f59067 PMD 0
[34560.040207] Oops: 0000 [#1] SMP
[34560.041014] Modules linked in: nfsv3(OE) nfs_layout_flexfiles(OE) nfsv4(OE) nfs(OE) fscache(E) rpcsec_gss_krb5(E) xt_addrtype(E) xt_conntrack(E) ipt_MASQUERADE(E) nf_nat_masquerade_ipv4(E) iptable_nat(E) nf_conntrack_ipv4(E) nf_defrag_ipv4(E) nf_nat_ipv4(E) iptable_filter(E) ip_tables(E) x_tables(E) nf_nat(E) nf_conntrack(E) bridge(E) stp(E) llc(E) dm_thin_pool(E) dm_persistent_data(E) dm_bio_prison(E) dm_bufio(E) ppdev(E) vmw_balloon(E) coretemp(E) crc32_pclmul(E) ghash_clmulni_intel(E) aesni_intel(E) aes_x86_64(E) glue_helper(E) lrw(E) gf128mul(E) ablk_helper(E) cryptd(E) psmouse(E) serio_raw(E) vmw_vmci(E) i2c_piix4(E) shpchp(E) parport_pc(E) parport(E) mac_hid(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) xfs(E) libcrc32c(E) hid_generic(E) usbhid(E) hid(E) e1000(E) mptspi(E)
[34560.045106] mptscsih(E) mptbase(E) vmwgfx(E) drm_kms_helper(E) ttm(E) drm(E) autofs4(E) [last unloaded: fscache]
[34560.045897] CPU: 0 PID: 130543 Comm: bash Tainted: G OE
4.2.0-rc5-dp-00057-gf993a93 #11
[34560.046699] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014
[34560.047525] task:
ffff880031b0a980 ti:
ffff880045fec000 task.ti:
ffff880045fec000
[34560.048264] RIP: 0010:[<
ffffffffa05423d6>] [<
ffffffffa05423d6>] nfs_init_commit+0x26/0x130 [nfs]
[34560.049000] RSP: 0018:
ffff880045fefc18 EFLAGS:
00010246
[34560.049717] RAX:
0000000000000000 RBX:
ffff8800208fbc80 RCX:
ffff880045fefd50
[34560.050396] RDX:
ffff880031c19ec0 RSI:
ffff880045fefc88 RDI:
ffff8800208fbc80
[34560.051041] RBP:
ffff880045fefc28 R08:
ffff8800208fbe68 R09:
ffff880045fefc88
[34560.051666] R10:
0000000000000000 R11:
0000000000000000 R12:
ffff880045fefc78
[34560.052247] R13:
ffff880045fefc88 R14:
ffff880045fefa90 R15:
ffff880045fefd50
[34560.052825] FS:
00007fa02d58c740(0000) GS:
ffff88006d600000(0000) knlGS:
0000000000000000
[34560.053410] CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
[34560.053992] CR2:
0000000000000068 CR3:
000000003b37a000 CR4:
00000000001406f0
[34560.054615] Stack:
[34560.055200]
ffff8800208fbc80 ffff8800208fbc80 ffff880045fefcc8 ffffffffa05c1a5b
[34560.055800]
ffff880045fefcc8 ffff880045fefd50 0000000045fefcb8 ffff880045fefd40
[34560.056418]
ffff8800420608e0 ffffffffa04f3910 0000000100000001 ffff880045fefd50
[34560.057013] Call Trace:
[34560.057672] [<
ffffffffa05c1a5b>] pnfs_generic_commit_pagelist+0x1cb/0x300 [nfsv4]
[34560.058277] [<
ffffffffa04f3910>] ? ff_layout_commit_pagelist+0x20/0x20 [nfs_layout_flexfiles]
[34560.058907] [<
ffffffffa04f3905>] ff_layout_commit_pagelist+0x15/0x20 [nfs_layout_flexfiles]
[34560.059557] [<
ffffffffa0543fc1>] nfs_generic_commit_list+0xb1/0xf0 [nfs]
[34560.060214] [<
ffffffffa0543e47>] ? nfs_scan_commit+0x37/0xa0 [nfs]
[34560.060825] [<
ffffffffa0544081>] nfs_commit_inode+0x81/0x150 [nfs]
[34560.061432] [<
ffffffffa05443ae>] nfs_wb_all+0x1ae/0x400 [nfs]
[34560.062035] [<
ffffffffa05380ad>] nfs_getattr+0x33d/0x510 [nfs]
[34560.062630] [<
ffffffff8122499c>] vfs_getattr_nosec+0x2c/0x40
[34560.063223] [<
ffffffff81224a66>] vfs_getattr+0x26/0x30
[34560.063818] [<
ffffffff81224b35>] vfs_fstatat+0x65/0xa0
[34560.064413] [<
ffffffff81224f3f>] SYSC_newstat+0x1f/0x40
[34560.065016] [<
ffffffff8102b176>] ? do_audit_syscall_entry+0x66/0x70
[34560.065626] [<
ffffffff8102c773>] ? syscall_trace_enter_phase1+0x113/0x170
[34560.066245] [<
ffffffff81003017>] ? trace_hardirqs_on_thunk+0x17/0x19
[34560.066868] [<
ffffffff812251ae>] SyS_newstat+0xe/0x10
[34560.067533] [<
ffffffff817a5df2>] entry_SYSCALL_64_fastpath+0x16/0x7a
[34560.068173] Code: 0f 1f 44 00 00 0f 1f 44 00 00 55 4c 8d 87 e8 01 00 00 48 89 e5 53 48 89 fb 48 83 ec 08 4c 8b 0e 49 8b 41 18 4c 39 ce 48 8b 40 40 <4c> 8b 50 68 74 24 48 8b 87 e8 01 00 00 48 8b 7e 08 4d 89 41 08
[34560.069609] RIP [<
ffffffffa05423d6>] nfs_init_commit+0x26/0x130 [nfs]
[34560.070295] RSP <
ffff880045fefc18>
[34560.071008] CR2:
0000000000000068
[34560.073207] ---[ end trace
f85f873260977406 ]---
[fixes
27571297a7e(pNFS: Tighten up locking around DS commit buckets)]
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>