1. 04 6月, 2014 7 次提交
  2. 18 3月, 2014 1 次提交
    • C
      SUNRPC: Fix large reads on NFS/RDMA · 2b7bbc96
      Chuck Lever 提交于
      After commit a11a2bf4, "SUNRPC: Optimise away unnecessary data moves
      in xdr_align_pages", Thu Aug 2 13:21:43 2012, READs larger than a
      few hundred bytes via NFS/RDMA no longer work.  This commit exposed
      a long-standing bug in rpcrdma_inline_fixup().
      
      I reproduce this with an rsize=4096 mount using the cthon04 basic
      tests.  Test 5 fails with an EIO error.
      
      For my reproducer, kernel log shows:
      
        NFS: server cheating in read reply: count 4096 > recvd 0
      
      rpcrdma_inline_fixup() is zeroing the xdr_stream::page_len field,
      and xdr_align_pages() is now returning that value to the READ XDR
      decoder function.
      
      That field is set up by xdr_inline_pages() by the READ XDR encoder
      function.  As far as I can tell, it is supposed to be left alone
      after that, as it describes the dimensions of the reply xdr_stream,
      not the contents of that stream.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=68391Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      2b7bbc96
  3. 01 2月, 2013 1 次提交
  4. 21 3月, 2012 1 次提交
  5. 20 3月, 2012 1 次提交
  6. 12 3月, 2011 1 次提交
    • T
      RPCRDMA: Fix to XDR page base interpretation in marshalling logic. · bd7ea31b
      Tom Tucker 提交于
      The RPCRDMA marshalling logic assumed that xdr->page_base was an
      offset into the first page of xdr->page_list. It is in fact an
      offset into the xdr->page_list itself, that is, it selects the
      first page in the page_list and the offset into that page.
      
      The symptom depended in part on the rpc_memreg_strategy, if it was
      FRMR, or some other one-shot mapping mode, the connection would get
      torn down on a base and bounds error. When the badly marshalled RPC
      was retransmitted it would reconnect, get the error, and tear down the
      connection again in a loop forever. This resulted in a hung-mount. For
      the other modes, it would result in silent data corruption. This bug is
      most easily reproduced by writing more data than the filesystem
      has space for.
      
      This fix corrects the page_base assumption and otherwise simplifies
      the iov mapping logic.
      Signed-off-by: NTom Tucker <tom@ogc.us>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      bd7ea31b
  7. 12 8月, 2010 1 次提交
  8. 12 3月, 2009 1 次提交
  9. 11 10月, 2008 4 次提交
  10. 21 9月, 2008 1 次提交
  11. 30 1月, 2008 2 次提交
  12. 29 1月, 2008 1 次提交
  13. 12 12月, 2007 1 次提交
  14. 30 10月, 2007 1 次提交
    • S
      [SUNRPC] rpc_rdma: we need to cast u64 to unsigned long long for printing · e08a132b
      Stephen Rothwell 提交于
      as some architectures have unsigned long for u64.
      
      net/sunrpc/xprtrdma/rpc_rdma.c: In function 'rpcrdma_create_chunks':
      net/sunrpc/xprtrdma/rpc_rdma.c:222: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'u64'
      net/sunrpc/xprtrdma/rpc_rdma.c:234: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'u64'
      net/sunrpc/xprtrdma/rpc_rdma.c: In function 'rpcrdma_count_chunks':
      net/sunrpc/xprtrdma/rpc_rdma.c:577: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'u64
      
      Noticed on PowerPC pseries_defconfig build.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e08a132b
  15. 29 10月, 2007 1 次提交
  16. 10 10月, 2007 2 次提交