]> Git Repo - linux.git/commitdiff
Merge tag 'nfsd-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
authorLinus Torvalds <[email protected]>
Sat, 29 Apr 2023 18:04:14 +0000 (11:04 -0700)
committerLinus Torvalds <[email protected]>
Sat, 29 Apr 2023 18:04:14 +0000 (11:04 -0700)
Pull nfsd updates from Chuck Lever:
 "The big ticket item for this release is that support for RPC-with-TLS
  [RFC 9289] has been added to the Linux NFS server.

  The goal is to provide a simple-to-deploy, low-overhead in-transit
  confidentiality and peer authentication mechanism. It can supplement
  NFS Kerberos and it can protect the use of legacy non-cryptographic
  user authentication flavors such as AUTH_SYS. The TLS Record protocol
  is handled entirely by kTLS, meaning it can use either software
  encryption or offload encryption to smart NICs.

  Aside from that, work continues on improving NFSD's open file cache.
  Among the many clean-ups in that area is a patch to convert the
  rhashtable to use the list-hashing version of that data structure"

* tag 'nfsd-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (31 commits)
  NFSD: Handle new xprtsec= export option
  SUNRPC: Support TLS handshake in the server-side TCP socket code
  NFSD: Clean up xattr memory allocation flags
  NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop
  SUNRPC: Clear rq_xid when receiving a new RPC Call
  SUNRPC: Recognize control messages in server-side TCP socket code
  SUNRPC: Be even lazier about releasing pages
  SUNRPC: Convert svc_xprt_release() to the release_pages() API
  SUNRPC: Relocate svc_free_res_pages()
  nfsd: simplify the delayed disposal list code
  SUNRPC: Ignore return value of ->xpo_sendto
  SUNRPC: Ensure server-side sockets have a sock->file
  NFSD: Watch for rq_pages bounds checking errors in nfsd_splice_actor()
  sunrpc: simplify two-level sysctl registration for svcrdma_parm_table
  SUNRPC: return proper error from get_expiry()
  lockd: add some client-side tracepoints
  nfs: move nfs_fhandle_hash to common include file
  lockd: server should unlock lock if client rejects the grant
  lockd: fix races in client GRANTED_MSG wait logic
  lockd: move struct nlm_wait to lockd.h
  ...

1  2 
fs/nfs/internal.h

diff --combined fs/nfs/internal.h
index 9ba07553eab8b7f687e6f527e8beabe86b18cbd4,10fb5e7573eba1b8bb92b667e93d2e700b4a4aa4..3cc027d3bd588a0631be6b3ee4efd057ccc8dfa1
@@@ -452,10 -452,6 +452,10 @@@ extern void nfs_sb_deactive(struct supe
  extern int nfs_client_for_each_server(struct nfs_client *clp,
                                      int (*fn)(struct nfs_server *, void *),
                                      void *data);
 +#ifdef CONFIG_NFS_FSCACHE
 +extern const struct netfs_request_ops nfs_netfs_ops;
 +#endif
 +
  /* io.c */
  extern void nfs_start_io_read(struct inode *inode);
  extern void nfs_end_io_read(struct inode *inode);
@@@ -485,14 -481,9 +485,14 @@@ extern int nfs4_get_rootfh(struct nfs_s
  
  struct nfs_pgio_completion_ops;
  /* read.c */
 +extern const struct nfs_pgio_completion_ops nfs_async_read_completion_ops;
  extern void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio,
                        struct inode *inode, bool force_mds,
                        const struct nfs_pgio_completion_ops *compl_ops);
 +extern int nfs_read_add_folio(struct nfs_pageio_descriptor *pgio,
 +                             struct nfs_open_context *ctx,
 +                             struct folio *folio);
 +extern void nfs_pageio_complete_read(struct nfs_pageio_descriptor *pgio);
  extern void nfs_read_prepare(struct rpc_task *task, void *calldata);
  extern void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio);
  
@@@ -855,27 -846,12 +855,12 @@@ u64 nfs_timespec_to_change_attr(const s
  }
  
  #ifdef CONFIG_CRC32
- /**
-  * nfs_fhandle_hash - calculate the crc32 hash for the filehandle
-  * @fh - pointer to filehandle
-  *
-  * returns a crc32 hash for the filehandle that is compatible with
-  * the one displayed by "wireshark".
-  */
- static inline u32 nfs_fhandle_hash(const struct nfs_fh *fh)
- {
-       return ~crc32_le(0xFFFFFFFF, &fh->data[0], fh->size);
- }
  static inline u32 nfs_stateid_hash(const nfs4_stateid *stateid)
  {
        return ~crc32_le(0xFFFFFFFF, &stateid->other[0],
                                NFS4_STATEID_OTHER_SIZE);
  }
  #else
- static inline u32 nfs_fhandle_hash(const struct nfs_fh *fh)
- {
-       return 0;
- }
  static inline u32 nfs_stateid_hash(nfs4_stateid *stateid)
  {
        return 0;
This page took 0.073163 seconds and 4 git commands to generate.