History

Merge tag 'nfs-for-4.13-1' of git://git.linux-nfs.org/projects/anna/linux-nfs

Pull NFS client updates from Anna Schumaker: "Stable bugfixes: - Fix -EACCESS on commit to DS handling - Fix initialization of nfs_page_array->npages - Only invalidate dentries that are actually invalid Features: - Enable NFSoRDMA transparent state migration - Add support for lookup-by-filehandle - Add support for nfs re-exporting Other bugfixes and cleanups: - Christoph cleaned up the way we declare NFS operations - Clean up various internal structures - Various cleanups to commits - Various improvements to error handling - Set the dt_type of . and .. entries in NFS v4 - Make slot allocation more reliable - Fix fscache stat printing - Fix uninitialized variable warnings - Fix potential list overrun in nfs_atomic_open() - Fix a race in NFSoRDMA RPC reply handler - Fix return size for nfs42_proc_copy() - Fix against MAC forgery timing attacks" * tag 'nfs-for-4.13-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (68 commits) NFS: Don't run wake_up_bit() when nobody is waiting... nfs: add export operations nfs4: add NFSv4 LOOKUPP handlers nfs: add a nfs_ilookup helper nfs: replace d_add with d_splice_alias in atomic_open sunrpc: use constant time memory comparison for mac NFSv4.2 fix size storage for nfs42_proc_copy xprtrdma: Fix documenting comments in frwr_ops.c xprtrdma: Replace PAGE_MASK with offset_in_page() xprtrdma: FMR does not need list_del_init() xprtrdma: Demote "connect" log messages NFSv4.1: Use seqid returned by EXCHANGE_ID after state migration NFSv4.1: Handle EXCHGID4_FLAG_CONFIRMED_R during NFSv4.1 migration xprtrdma: Don't defer MR recovery if ro_map fails xprtrdma: Fix FRWR invalidation error recovery xprtrdma: Fix client lock-up after application signal fires xprtrdma: Rename rpcrdma_req::rl_free xprtrdma: Pass only the list of registered MRs to ro_unmap_sync xprtrdma: Pre-mark remotely invalidated MRs xprtrdma: On invalidation failure, remove MWs from rl_registered ...

Linus Torvalds committed 9 years ago

Commit b86faee2 parents 48ea2ce b4f937c35 files · +777 −289Browse files

Showing the changes to include/linux (5 of 35 files). Show all

Unified · Split

5 files
  1. include/linux/nfs4.h +1 −0
  2. include/linux/nfs_fs.h +1 −0
  3. include/linux/nfs_fs_sb.h +2 −0
  4. include/linux/nfs_page.h +3 −1
  5. include/linux/nfs_xdr.h +24 −7
include/linux/nfs4.h+1−0
@@ -479,6 +479,7 @@ enum { · 478 unmodified lines
479 NFSPROC4_CLNT_ACCESS,479 NFSPROC4_CLNT_ACCESS,
480 NFSPROC4_CLNT_GETATTR,480 NFSPROC4_CLNT_GETATTR,
481 NFSPROC4_CLNT_LOOKUP,481 NFSPROC4_CLNT_LOOKUP,
482 NFSPROC4_CLNT_LOOKUPP,
482 NFSPROC4_CLNT_LOOKUP_ROOT,483 NFSPROC4_CLNT_LOOKUP_ROOT,
483 NFSPROC4_CLNT_REMOVE,484 NFSPROC4_CLNT_REMOVE,
484 NFSPROC4_CLNT_RENAME,485 NFSPROC4_CLNT_RENAME,
include/linux/nfs_fs.h+1−0
@@ -332,6 +332,7 @@ extern void nfs_zap_caches(struct inode *); · 331 unmodified lines
332extern void nfs_invalidate_atime(struct inode *);332extern void nfs_invalidate_atime(struct inode *);
333extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *,333extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *,
334 struct nfs_fattr *, struct nfs4_label *);334 struct nfs_fattr *, struct nfs4_label *);
335struct inode *nfs_ilookup(struct super_block *sb, struct nfs_fattr *, struct nfs_fh *);
335extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *);336extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *);
336extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr);337extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr);
337extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr);338extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr);
include/linux/nfs_fs_sb.h+2−0
@@ -42,6 +42,7 @@ struct nfs_client { · 41 unmodified lines
42#define NFS_CS_MIGRATION 2 /* - transparent state migr */42#define NFS_CS_MIGRATION 2 /* - transparent state migr */
43#define NFS_CS_INFINITE_SLOTS 3 /* - don't limit TCP slots */43#define NFS_CS_INFINITE_SLOTS 3 /* - don't limit TCP slots */
44#define NFS_CS_NO_RETRANS_TIMEOUT 4 /* - Disable retransmit timeouts */44#define NFS_CS_NO_RETRANS_TIMEOUT 4 /* - Disable retransmit timeouts */
45#define NFS_CS_TSM_POSSIBLE 5 /* - Maybe state migration */
45 struct sockaddr_storage cl_addr; /* server identifier */46 struct sockaddr_storage cl_addr; /* server identifier */
46 size_t cl_addrlen;47 size_t cl_addrlen;
47 char * cl_hostname; /* hostname of server */48 char * cl_hostname; /* hostname of server */
@@ -210,6 +211,7 @@ struct nfs_server { · 162 unmodified lines
210 unsigned long mig_status;211 unsigned long mig_status;
211#define NFS_MIG_IN_TRANSITION (1)212#define NFS_MIG_IN_TRANSITION (1)
212#define NFS_MIG_FAILED (2)213#define NFS_MIG_FAILED (2)
214#define NFS_MIG_TSM_POSSIBLE (3)
213 215
214 void (*destroy)(struct nfs_server *);216 void (*destroy)(struct nfs_server *);
215 217
include/linux/nfs_page.h+3−1
@@ -33,6 +33,8 @@ enum { · 32 unmodified lines
33 PG_UPTODATE, /* page group sync bit in read path */33 PG_UPTODATE, /* page group sync bit in read path */
34 PG_WB_END, /* page group sync bit in write path */34 PG_WB_END, /* page group sync bit in write path */
35 PG_REMOVE, /* page group sync bit in write path */35 PG_REMOVE, /* page group sync bit in write path */
36 PG_CONTENDED1, /* Is someone waiting for a lock? */
37 PG_CONTENDED2, /* Is someone waiting for a lock? */
36};38};
37 39
38struct nfs_inode;40struct nfs_inode;
@@ -93,8 +95,8 @@ struct nfs_pageio_descriptor { · 54 unmodified lines
93 const struct rpc_call_ops *pg_rpc_callops;95 const struct rpc_call_ops *pg_rpc_callops;
94 const struct nfs_pgio_completion_ops *pg_completion_ops;96 const struct nfs_pgio_completion_ops *pg_completion_ops;
95 struct pnfs_layout_segment *pg_lseg;97 struct pnfs_layout_segment *pg_lseg;
98 struct nfs_io_completion *pg_io_completion;
96 struct nfs_direct_req *pg_dreq;99 struct nfs_direct_req *pg_dreq;
97 void *pg_layout_private;
98 unsigned int pg_bsize; /* default bsize for mirrors */100 unsigned int pg_bsize; /* default bsize for mirrors */
99 101
100 u32 pg_mirror_count;102 u32 pg_mirror_count;
include/linux/nfs_xdr.h+24−7
@@ -878,7 +878,7 @@ struct nfs3_readdirargs { · 877 unmodified lines
878 struct nfs_fh * fh;878 struct nfs_fh * fh;
879 __u64 cookie;879 __u64 cookie;
880 __be32 verf[2];880 __be32 verf[2];
881 int plus;881 bool plus;
882 unsigned int count;882 unsigned int count;
883 struct page ** pages;883 struct page ** pages;
884};884};
@@ -909,7 +909,7 @@ struct nfs3_linkres { · 24 unmodified lines
909struct nfs3_readdirres {909struct nfs3_readdirres {
910 struct nfs_fattr * dir_attr;910 struct nfs_fattr * dir_attr;
911 __be32 * verf;911 __be32 * verf;
912 int plus;912 bool plus;
913};913};
914 914
915struct nfs3_getaclres {915struct nfs3_getaclres {
@@ -1012,7 +1012,6 @@ struct nfs4_link_res { · 96 unmodified lines
1012 struct nfs_fattr * dir_attr;1012 struct nfs_fattr * dir_attr;
1013};1013};
1014 1014
1015
1016struct nfs4_lookup_arg {1015struct nfs4_lookup_arg {
1017 struct nfs4_sequence_args seq_args;1016 struct nfs4_sequence_args seq_args;
1018 const struct nfs_fh * dir_fh;1017 const struct nfs_fh * dir_fh;
@@ -1028,6 +1027,20 @@ struct nfs4_lookup_res { · 9 unmodified lines
1028 struct nfs4_label *label;1027 struct nfs4_label *label;
1029};1028};
1030 1029
1030struct nfs4_lookupp_arg {
1031 struct nfs4_sequence_args seq_args;
1032 const struct nfs_fh *fh;
1033 const u32 *bitmask;
1034};
1035
1036struct nfs4_lookupp_res {
1037 struct nfs4_sequence_res seq_res;
1038 const struct nfs_server *server;
1039 struct nfs_fattr *fattr;
1040 struct nfs_fh *fh;
1041 struct nfs4_label *label;
1042};
1043
1031struct nfs4_lookup_root_arg {1044struct nfs4_lookup_root_arg {
1032 struct nfs4_sequence_args seq_args;1045 struct nfs4_sequence_args seq_args;
1033 const u32 * bitmask;1046 const u32 * bitmask;
@@ -1053,7 +1066,7 @@ struct nfs4_readdir_arg { · 19 unmodified lines
1053 struct page ** pages; /* zero-copy data */1066 struct page ** pages; /* zero-copy data */
1054 unsigned int pgbase; /* zero-copy data */1067 unsigned int pgbase; /* zero-copy data */
1055 const u32 * bitmask;1068 const u32 * bitmask;
1056 int plus;1069 bool plus;
1057};1070};
1058 1071
1059struct nfs4_readdir_res {1072struct nfs4_readdir_res {
@@ -1422,6 +1435,7 @@ enum { · 362 unmodified lines
1422 NFS_IOHDR_STAT,1435 NFS_IOHDR_STAT,
1423};1436};
1424 1437
1438struct nfs_io_completion;
1425struct nfs_pgio_header {1439struct nfs_pgio_header {
1426 struct inode *inode;1440 struct inode *inode;
1427 struct rpc_cred *cred;1441 struct rpc_cred *cred;
@@ -1435,8 +1449,8 @@ struct nfs_pgio_header { · 7 unmodified lines
1435 void (*release) (struct nfs_pgio_header *hdr);1449 void (*release) (struct nfs_pgio_header *hdr);
1436 const struct nfs_pgio_completion_ops *completion_ops;1450 const struct nfs_pgio_completion_ops *completion_ops;
1437 const struct nfs_rw_ops *rw_ops;1451 const struct nfs_rw_ops *rw_ops;
1452 struct nfs_io_completion *io_completion;
1438 struct nfs_direct_req *dreq;1453 struct nfs_direct_req *dreq;
1439 void *layout_private;
1440 spinlock_t lock;1454 spinlock_t lock;
1441 /* fields protected by lock */1455 /* fields protected by lock */
1442 int pnfs_error;1456 int pnfs_error;
@@ -1533,6 +1547,7 @@ struct nfs_renamedata { · 90 unmodified lines
1533 struct nfs_fattr new_fattr;1547 struct nfs_fattr new_fattr;
1534 void (*complete)(struct rpc_task *, struct nfs_renamedata *);1548 void (*complete)(struct rpc_task *, struct nfs_renamedata *);
1535 long timeout;1549 long timeout;
1550 bool cancelled;
1536};1551};
1537 1552
1538struct nfs_access_entry;1553struct nfs_access_entry;
@@ -1567,6 +1582,8 @@ struct nfs_rpc_ops { · 28 unmodified lines
1567 int (*lookup) (struct inode *, const struct qstr *,1582 int (*lookup) (struct inode *, const struct qstr *,
1568 struct nfs_fh *, struct nfs_fattr *,1583 struct nfs_fh *, struct nfs_fattr *,
1569 struct nfs4_label *);1584 struct nfs4_label *);
1585 int (*lookupp) (struct inode *, struct nfs_fh *,
1586 struct nfs_fattr *, struct nfs4_label *);
1570 int (*access) (struct inode *, struct nfs_access_entry *);1587 int (*access) (struct inode *, struct nfs_access_entry *);
1571 int (*readlink)(struct inode *, struct page *, unsigned int,1588 int (*readlink)(struct inode *, struct page *, unsigned int,
1572 unsigned int);1589 unsigned int);
@@ -1585,7 +1602,7 @@ struct nfs_rpc_ops { · 12 unmodified lines
1585 int (*mkdir) (struct inode *, struct dentry *, struct iattr *);1602 int (*mkdir) (struct inode *, struct dentry *, struct iattr *);
1586 int (*rmdir) (struct inode *, const struct qstr *);1603 int (*rmdir) (struct inode *, const struct qstr *);
1587 int (*readdir) (struct dentry *, struct rpc_cred *,1604 int (*readdir) (struct dentry *, struct rpc_cred *,
1588 u64, struct page **, unsigned int, int);1605 u64, struct page **, unsigned int, bool);
1589 int (*mknod) (struct inode *, struct dentry *, struct iattr *,1606 int (*mknod) (struct inode *, struct dentry *, struct iattr *,
1590 dev_t);1607 dev_t);
1591 int (*statfs) (struct nfs_server *, struct nfs_fh *,1608 int (*statfs) (struct nfs_server *, struct nfs_fh *,
@@ -1595,7 +1612,7 @@ struct nfs_rpc_ops { · 3 unmodified lines
1595 int (*pathconf) (struct nfs_server *, struct nfs_fh *,1612 int (*pathconf) (struct nfs_server *, struct nfs_fh *,
1596 struct nfs_pathconf *);1613 struct nfs_pathconf *);
1597 int (*set_capabilities)(struct nfs_server *, struct nfs_fh *);1614 int (*set_capabilities)(struct nfs_server *, struct nfs_fh *);
1598 int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, int);1615 int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool);
1599 int (*pgio_rpc_prepare)(struct rpc_task *,1616 int (*pgio_rpc_prepare)(struct rpc_task *,
1600 struct nfs_pgio_header *);1617 struct nfs_pgio_header *);
1601 void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *);1618 void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *);

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