1. 31 Aug, 2015 1 commit
    • Trond Myklebust's avatar
      NFSv4.1: Fix a protocol issue with CLOSE stateids · 4a1e2feb
      Trond Myklebust authored
      According to RFC5661 Section 18.2.4, CLOSE is supposed to return
      the zero stateid. This means that nfs_clear_open_stateid_locked()
      cannot assume that the result stateid will always match the 'other'
      field of the existing open stateid when trying to determine a race
      with a parallel OPEN.
      
      Instead, we look at the argument, and check for matches.
      
      Cc: stable@vger.kernel.org # v4.0+
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      4a1e2feb
  2. 30 Aug, 2015 2 commits
  3. 29 Aug, 2015 1 commit
  4. 28 Aug, 2015 2 commits
  5. 27 Aug, 2015 6 commits
  6. 26 Aug, 2015 2 commits
  7. 25 Aug, 2015 16 commits
  8. 20 Aug, 2015 6 commits
    • Trond Myklebust's avatar
      NFSv4.1/pnfs Ensure flexfiles reports all connection related errors · dd52128a
      Trond Myklebust authored
      Make sure that we also handle RPC level connection and protocol
      negotiation errors.
      Reported-by: default avatarTom Haynes <loghyr@primarydata.com>
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      dd52128a
    • Trond Myklebust's avatar
      NFSv4.1/pnfs: Ensure the flexfiles layoutstats timers are consistent · e76d28dd
      Trond Myklebust authored
      We want to ensure that the stopwatches for the busy timer and the
      aggregate timer are consistent. This means that they need to use
      the same start/stop times.
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      e76d28dd
    • Peng Tao's avatar
      NFS41: fix list splice type · 046be74d
      Peng Tao authored
      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 27571297(pNFS: Tighten up locking around DS commit buckets)]
      Signed-off-by: default avatarPeng Tao <tao.peng@primarydata.com>
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      046be74d
    • Trond Myklebust's avatar
      NFSv4: Enable delegated opens even when reboot recovery is pending · 2a606188
      Trond Myklebust authored
      Unlike the previous attempt, this takes into account the fact that
      we may be calling it from the recovery thread itself. Detect this
      by looking at what kind of open we're doing, and checking the state
      of the NFS_DELEGATION_NEED_RECLAIM if it turns out we're doing a
      reboot reclaim-type open.
      
      Cc: Olga Kornievskaia <aglo@umich.edu>
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      2a606188
    • Trond Myklebust's avatar
    • Trond Myklebust's avatar
      SUNRPC: Allow sockets to do GFP_NOIO allocations · c2126157
      Trond Myklebust authored
      Follow up to commit c4a7ca77 ("SUNRPC: Allow waiting on memory
      allocation"). Allows the RPC socket code to do non-IO blocking.
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      c2126157
  9. 19 Aug, 2015 4 commits