History

Merge tag 'nfs-for-5.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs

Pull NFS client updates from Trond Myklebust: "Highlights include: Features: - NFSv4.2 now supports cross device offloaded copy (i.e. offloaded copy of a file from one source server to a different target server). - New RDMA tracepoints for debugging congestion control and Local Invalidate WRs. Bugfixes and cleanups - Drop the NFSv4.1 session slot if nfs4_delegreturn_prepare waits for layoutreturn - Handle bad/dead sessions correctly in nfs41_sequence_process() - Various bugfixes to the delegation return operation. - Various bugfixes pertaining to delegations that have been revoked. - Cleanups to the NFS timespec code to avoid unnecessary conversions between timespec and timespec64. - Fix unstable RDMA connections after a reconnect - Close race between waking an RDMA sender and posting a receive - Wake pending RDMA tasks if connection fails - Fix MR list corruption, and clean up MR usage - Fix another RPCSEC_GSS issue with MIC buffer space" * tag 'nfs-for-5.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (79 commits) SUNRPC: Capture completion of all RPC tasks SUNRPC: Fix another issue with MIC buffer space NFS4: Trace lock reclaims NFS4: Trace state recovery operation NFSv4.2 fix memory leak in nfs42_ssc_open NFSv4.2 fix kfree in __nfs42_copy_file_range NFS: remove duplicated include from nfs4file.c NFSv4: Make _nfs42_proc_copy_notify() static NFS: Fallocate should use the nfs4_fattr_bitmap NFS: Return -ETXTBSY when attempting to write to a swapfile fs: nfs: sysfs: Remove NULL check before kfree NFS: remove unneeded semicolon NFSv4: add declaration of current_stateid NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for layoutreturn NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process() nfsv4: Move NFSPROC4_CLNT_COPY_NOTIFY to end of list SUNRPC: Avoid RPC delays when exiting suspend NFS: Add a tracepoint in nfs_fh_to_dentry() NFSv4: Don't retry the GETATTR on old stateid in nfs4_delegreturn_done() NFSv4: Handle NFS4ERR_OLD_STATEID in delegreturn ...

Linus Torvalds committed 6 years ago

Commit fb9bf402 parents 94e89b4 a264aba49 files · +1756 −622Browse files

Showing the changes to include/linux (6 of 49 files). Show all

Unified · Split

6 files
  1. include/linux/nfs4.h +26 −0
  2. include/linux/nfs_fs.h +3 −1
  3. include/linux/nfs_fs_sb.h +5 −1
  4. include/linux/nfs_xdr.h +24 −7
  5. include/linux/sunrpc/clnt.h +1 −0
  6. include/linux/sunrpc/xprt.h +2 −1
include/linux/nfs4.h+26−0
@@ -16,6 +16,7 @@ · 15 unmodified lines
16#include <linux/list.h>16#include <linux/list.h>
17#include <linux/uidgid.h>17#include <linux/uidgid.h>
18#include <uapi/linux/nfs4.h>18#include <uapi/linux/nfs4.h>
19#include <linux/sunrpc/msg_prot.h>
19 20
20enum nfs4_acl_whotype {21enum nfs4_acl_whotype {
21 NFS4_ACL_WHO_NAMED = 0,22 NFS4_ACL_WHO_NAMED = 0,
@@ -539,6 +540,8 @@ enum { · 517 unmodified lines
539 540
540 NFSPROC4_CLNT_LOOKUPP,541 NFSPROC4_CLNT_LOOKUPP,
541 NFSPROC4_CLNT_LAYOUTERROR,542 NFSPROC4_CLNT_LAYOUTERROR,
543
544 NFSPROC4_CLNT_COPY_NOTIFY,
542};545};
543 546
544/* nfs41 types */547/* nfs41 types */
@@ -674,4 +677,27 @@ struct nfs4_op_map { · 129 unmodified lines
674 } u;677 } u;
675};678};
676 679
680struct nfs42_netaddr {
681 char netid[RPCBIND_MAXNETIDLEN];
682 char addr[RPCBIND_MAXUADDRLEN + 1];
683 u32 netid_len;
684 u32 addr_len;
685};
686
687enum netloc_type4 {
688 NL4_NAME = 1,
689 NL4_URL = 2,
690 NL4_NETADDR = 3,
691};
692
693struct nl4_server {
694 enum netloc_type4 nl4_type;
695 union {
696 struct { /* NL4_NAME, NL4_URL */
697 int nl4_str_sz;
698 char nl4_str[NFS4_OPAQUE_LIMIT + 1];
699 };
700 struct nfs42_netaddr nl4_addr; /* NL4_NETADDR */
701 } u;
702};
677#endif703#endif
include/linux/nfs_fs.h+3−1
@@ -189,13 +189,15 @@ struct nfs_inode { · 188 unmodified lines
189 189
190struct nfs4_copy_state {190struct nfs4_copy_state {
191 struct list_head copies;191 struct list_head copies;
192 struct list_head src_copies;
192 nfs4_stateid stateid;193 nfs4_stateid stateid;
193 struct completion completion;194 struct completion completion;
194 uint64_t count;195 uint64_t count;
195 struct nfs_writeverf verf;196 struct nfs_writeverf verf;
196 int error;197 int error;
197 int flags;198 int flags;
198 struct nfs4_state *parent_state;199 struct nfs4_state *parent_src_state;
200 struct nfs4_state *parent_dst_state;
199};201};
200 202
201/*203/*
include/linux/nfs_fs_sb.h+5−1
@@ -45,6 +45,9 @@ struct nfs_client { · 44 unmodified lines
45#define NFS_CS_INFINITE_SLOTS 3 /* - don't limit TCP slots */45#define NFS_CS_INFINITE_SLOTS 3 /* - don't limit TCP slots */
46#define NFS_CS_NO_RETRANS_TIMEOUT 4 /* - Disable retransmit timeouts */46#define NFS_CS_NO_RETRANS_TIMEOUT 4 /* - Disable retransmit timeouts */
47#define NFS_CS_TSM_POSSIBLE 5 /* - Maybe state migration */47#define NFS_CS_TSM_POSSIBLE 5 /* - Maybe state migration */
48#define NFS_CS_NOPING 6 /* - don't ping on connect */
49#define NFS_CS_DS 7 /* - Server is a DS */
50#define NFS_CS_REUSEPORT 8 /* - reuse src port on reconnect */
48 struct sockaddr_storage cl_addr; /* server identifier */51 struct sockaddr_storage cl_addr; /* server identifier */
49 size_t cl_addrlen;52 size_t cl_addrlen;
50 char * cl_hostname; /* hostname of server */53 char * cl_hostname; /* hostname of server */
@@ -171,7 +174,7 @@ struct nfs_server { · 120 unmodified lines
171 174
172 struct nfs_fsid fsid;175 struct nfs_fsid fsid;
173 __u64 maxfilesize; /* maximum file size */176 __u64 maxfilesize; /* maximum file size */
174 struct timespec time_delta; /* smallest time granularity */177 struct timespec64 time_delta; /* smallest time granularity */
175 unsigned long mount_time; /* when this fs was mounted */178 unsigned long mount_time; /* when this fs was mounted */
176 struct super_block *super; /* VFS super block */179 struct super_block *super; /* VFS super block */
177 dev_t s_dev; /* superblock dev numbers */180 dev_t s_dev; /* superblock dev numbers */
@@ -276,5 +279,6 @@ struct nfs_server { · 98 unmodified lines
276#define NFS_CAP_COPY (1U << 24)279#define NFS_CAP_COPY (1U << 24)
277#define NFS_CAP_OFFLOAD_CANCEL (1U << 25)280#define NFS_CAP_OFFLOAD_CANCEL (1U << 25)
278#define NFS_CAP_LAYOUTERROR (1U << 26)281#define NFS_CAP_LAYOUTERROR (1U << 26)
282#define NFS_CAP_COPY_NOTIFY (1U << 27)
279 283
280#endif284#endif
include/linux/nfs_xdr.h+24−7
@@ -62,14 +62,14 @@ struct nfs_fattr { · 61 unmodified lines
62 struct nfs_fsid fsid;62 struct nfs_fsid fsid;
63 __u64 fileid;63 __u64 fileid;
64 __u64 mounted_on_fileid;64 __u64 mounted_on_fileid;
65 struct timespec atime;65 struct timespec64 atime;
66 struct timespec mtime;66 struct timespec64 mtime;
67 struct timespec ctime;67 struct timespec64 ctime;
68 __u64 change_attr; /* NFSv4 change attribute */68 __u64 change_attr; /* NFSv4 change attribute */
69 __u64 pre_change_attr;/* pre-op NFSv4 change attribute */69 __u64 pre_change_attr;/* pre-op NFSv4 change attribute */
70 __u64 pre_size; /* pre_op_attr.size */70 __u64 pre_size; /* pre_op_attr.size */
71 struct timespec pre_mtime; /* pre_op_attr.mtime */71 struct timespec64 pre_mtime; /* pre_op_attr.mtime */
72 struct timespec pre_ctime; /* pre_op_attr.ctime */72 struct timespec64 pre_ctime; /* pre_op_attr.ctime */
73 unsigned long time_start;73 unsigned long time_start;
74 unsigned long gencount;74 unsigned long gencount;
75 struct nfs4_string *owner_name;75 struct nfs4_string *owner_name;
@@ -143,7 +143,7 @@ struct nfs_fsinfo { · 67 unmodified lines
143 __u32 wtmult; /* writes should be multiple of this */143 __u32 wtmult; /* writes should be multiple of this */
144 __u32 dtpref; /* pref. readdir transfer size */144 __u32 dtpref; /* pref. readdir transfer size */
145 __u64 maxfilesize;145 __u64 maxfilesize;
146 struct timespec time_delta; /* server time granularity */146 struct timespec64 time_delta; /* server time granularity */
147 __u32 lease_time; /* in seconds */147 __u32 lease_time; /* in seconds */
148 __u32 nlayouttypes; /* number of layouttypes */148 __u32 nlayouttypes; /* number of layouttypes */
149 __u32 layouttype[NFS_MAX_LAYOUT_TYPES]; /* supported pnfs layout driver */149 __u32 layouttype[NFS_MAX_LAYOUT_TYPES]; /* supported pnfs layout driver */
@@ -869,7 +869,7 @@ struct nfs3_sattrargs { · 719 unmodified lines
869 struct nfs_fh * fh;869 struct nfs_fh * fh;
870 struct iattr * sattr;870 struct iattr * sattr;
871 unsigned int guard;871 unsigned int guard;
872 struct timespec guardtime;872 struct timespec64 guardtime;
873};873};
874 874
875struct nfs3_diropargs {875struct nfs3_diropargs {
@@ -1435,6 +1435,7 @@ struct nfs42_copy_args { · 559 unmodified lines
1435 1435
1436 u64 count;1436 u64 count;
1437 bool sync;1437 bool sync;
1438 struct nl4_server *cp_src;
1438};1439};
1439 1440
1440struct nfs42_write_res {1441struct nfs42_write_res {
@@ -1463,6 +1464,22 @@ struct nfs42_offload_status_res { · 22 unmodified lines
1463 int osr_status;1464 int osr_status;
1464};1465};
1465 1466
1467struct nfs42_copy_notify_args {
1468 struct nfs4_sequence_args cna_seq_args;
1469
1470 struct nfs_fh *cna_src_fh;
1471 nfs4_stateid cna_src_stateid;
1472 struct nl4_server cna_dst;
1473};
1474
1475struct nfs42_copy_notify_res {
1476 struct nfs4_sequence_res cnr_seq_res;
1477
1478 struct nfstime4 cnr_lease_time;
1479 nfs4_stateid cnr_stateid;
1480 struct nl4_server cnr_src;
1481};
1482
1466struct nfs42_seek_args {1483struct nfs42_seek_args {
1467 struct nfs4_sequence_args seq_args;1484 struct nfs4_sequence_args seq_args;
1468 1485
include/linux/sunrpc/clnt.h+1−0
@@ -149,6 +149,7 @@ struct rpc_add_xprt_test { · 148 unmodified lines
149#define RPC_CLNT_CREATE_NO_IDLE_TIMEOUT (1UL << 8)149#define RPC_CLNT_CREATE_NO_IDLE_TIMEOUT (1UL << 8)
150#define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9)150#define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9)
151#define RPC_CLNT_CREATE_SOFTERR (1UL << 10)151#define RPC_CLNT_CREATE_SOFTERR (1UL << 10)
152#define RPC_CLNT_CREATE_REUSEPORT (1UL << 11)
152 153
153struct rpc_clnt *rpc_create(struct rpc_create_args *args);154struct rpc_clnt *rpc_create(struct rpc_create_args *args);
154struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *,155struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *,
include/linux/sunrpc/xprt.h+2−1
@@ -207,7 +207,8 @@ struct rpc_xprt { · 206 unmodified lines
207 unsigned int min_reqs; /* min number of slots */207 unsigned int min_reqs; /* min number of slots */
208 unsigned int num_reqs; /* total slots */208 unsigned int num_reqs; /* total slots */
209 unsigned long state; /* transport state */209 unsigned long state; /* transport state */
210 unsigned char resvport : 1; /* use a reserved port */210 unsigned char resvport : 1, /* use a reserved port */
211 reuseport : 1; /* reuse port on reconnect */
211 atomic_t swapper; /* we're swapping over this212 atomic_t swapper; /* we're swapping over this
212 transport */213 transport */
213 unsigned int bind_index; /* bind function index */214 unsigned int bind_index; /* bind function index */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t