diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 18:39:20 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 18:39:20 -0400 |
| commit | 52ad096465d60ee7fdc99583f969a99a1166c7c3 (patch) | |
| tree | 0cf33926ce8b5eb4f6675d3b1332b35e914f4846 /include/linux | |
| parent | 8cde1ad6683f8738ad71f788dca8ab4810cf5afe (diff) | |
| parent | 6925bac120097b823fc990c143b9789c21cc60b5 (diff) | |
Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6
* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (53 commits)
NFS: Fix a resolution problem with nfs_inode->cache_change_attribute
NFS: Fix the resolution problem with nfs_inode_attrs_need_update()
NFS: Changes to inode->i_nlinks must set the NFS_INO_INVALID_ATTR flag
RPC/RDMA: ensure connection attempt is complete before signalling.
RPC/RDMA: correct the reconnect timer backoff
RPC/RDMA: optionally emit useful transport info upon connect/disconnect.
RPC/RDMA: reformat a debug printk to keep lines together.
RPC/RDMA: harden connection logic against missing/late rdma_cm upcalls.
RPC/RDMA: fix connect/reconnect resource leak.
RPC/RDMA: return a consistent error, when connect fails.
RPC/RDMA: adhere to protocol for unpadded client trailing write chunks.
RPC/RDMA: avoid an oops due to disconnect racing with async upcalls.
RPC/RDMA: maintain the RPC task bytes-sent statistic.
RPC/RDMA: suppress retransmit on RPC/RDMA clients.
RPC/RDMA: fix connection IRD/ORD setting
RPC/RDMA: support FRMR client memory registration.
RPC/RDMA: check selected memory registration mode at runtime.
RPC/RDMA: add data types and new FRMR memory registration enum.
RPC/RDMA: refactor the inline memory registration code.
NFS: fix nfs_parse_ip_address() corner case
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/nfs_fs.h | 19 | ||||
| -rw-r--r-- | include/linux/nfs_fs_sb.h | 1 | ||||
| -rw-r--r-- | include/linux/nfs_mount.h | 4 | ||||
| -rw-r--r-- | include/linux/nfs_xdr.h | 11 | ||||
| -rw-r--r-- | include/linux/sunrpc/xprtrdma.h | 4 |
5 files changed, 18 insertions, 21 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 78a5922a2f11..ac8d0233b05c 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -137,7 +137,7 @@ struct nfs_inode { | |||
| 137 | unsigned long attrtimeo_timestamp; | 137 | unsigned long attrtimeo_timestamp; |
| 138 | __u64 change_attr; /* v4 only */ | 138 | __u64 change_attr; /* v4 only */ |
| 139 | 139 | ||
| 140 | unsigned long last_updated; | 140 | unsigned long attr_gencount; |
| 141 | /* "Generation counter" for the attribute cache. This is | 141 | /* "Generation counter" for the attribute cache. This is |
| 142 | * bumped whenever we update the metadata on the | 142 | * bumped whenever we update the metadata on the |
| 143 | * server. | 143 | * server. |
| @@ -200,11 +200,10 @@ struct nfs_inode { | |||
| 200 | /* | 200 | /* |
| 201 | * Bit offsets in flags field | 201 | * Bit offsets in flags field |
| 202 | */ | 202 | */ |
| 203 | #define NFS_INO_REVALIDATING (0) /* revalidating attrs */ | 203 | #define NFS_INO_ADVISE_RDPLUS (0) /* advise readdirplus */ |
| 204 | #define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */ | 204 | #define NFS_INO_STALE (1) /* possible stale inode */ |
| 205 | #define NFS_INO_STALE (2) /* possible stale inode */ | 205 | #define NFS_INO_ACL_LRU_SET (2) /* Inode is on the LRU list */ |
| 206 | #define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */ | 206 | #define NFS_INO_MOUNTPOINT (3) /* inode is remote mountpoint */ |
| 207 | #define NFS_INO_MOUNTPOINT (4) /* inode is remote mountpoint */ | ||
| 208 | 207 | ||
| 209 | static inline struct nfs_inode *NFS_I(const struct inode *inode) | 208 | static inline struct nfs_inode *NFS_I(const struct inode *inode) |
| 210 | { | 209 | { |
| @@ -345,15 +344,11 @@ extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ct | |||
| 345 | extern void put_nfs_open_context(struct nfs_open_context *ctx); | 344 | extern void put_nfs_open_context(struct nfs_open_context *ctx); |
| 346 | extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); | 345 | extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); |
| 347 | extern u64 nfs_compat_user_ino64(u64 fileid); | 346 | extern u64 nfs_compat_user_ino64(u64 fileid); |
| 347 | extern void nfs_fattr_init(struct nfs_fattr *fattr); | ||
| 348 | 348 | ||
| 349 | /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ | 349 | /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ |
| 350 | extern __be32 root_nfs_parse_addr(char *name); /*__init*/ | 350 | extern __be32 root_nfs_parse_addr(char *name); /*__init*/ |
| 351 | 351 | extern unsigned long nfs_inc_attr_generation_counter(void); | |
| 352 | static inline void nfs_fattr_init(struct nfs_fattr *fattr) | ||
| 353 | { | ||
| 354 | fattr->valid = 0; | ||
| 355 | fattr->time_start = jiffies; | ||
| 356 | } | ||
| 357 | 352 | ||
| 358 | /* | 353 | /* |
| 359 | * linux/fs/nfs/file.c | 354 | * linux/fs/nfs/file.c |
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index c9beacd16c00..4e477ae58699 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h | |||
| @@ -119,7 +119,6 @@ struct nfs_server { | |||
| 119 | void (*destroy)(struct nfs_server *); | 119 | void (*destroy)(struct nfs_server *); |
| 120 | 120 | ||
| 121 | atomic_t active; /* Keep trace of any activity to this server */ | 121 | atomic_t active; /* Keep trace of any activity to this server */ |
| 122 | wait_queue_head_t active_wq; /* Wait for any activity to stop */ | ||
| 123 | 122 | ||
| 124 | /* mountd-related mount options */ | 123 | /* mountd-related mount options */ |
| 125 | struct sockaddr_storage mountd_address; | 124 | struct sockaddr_storage mountd_address; |
diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h index df7c6b7a7ebb..6549a06ac16e 100644 --- a/include/linux/nfs_mount.h +++ b/include/linux/nfs_mount.h | |||
| @@ -65,4 +65,8 @@ struct nfs_mount_data { | |||
| 65 | #define NFS_MOUNT_UNSHARED 0x8000 /* 5 */ | 65 | #define NFS_MOUNT_UNSHARED 0x8000 /* 5 */ |
| 66 | #define NFS_MOUNT_FLAGMASK 0xFFFF | 66 | #define NFS_MOUNT_FLAGMASK 0xFFFF |
| 67 | 67 | ||
| 68 | /* The following are for internal use only */ | ||
| 69 | #define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000 | ||
| 70 | #define NFS_MOUNT_LOOKUP_CACHE_NONE 0x20000 | ||
| 71 | |||
| 68 | #endif | 72 | #endif |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 8c77c11224d1..c1c31acb8a2b 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -36,6 +36,7 @@ struct nfs_fattr { | |||
| 36 | __u32 nlink; | 36 | __u32 nlink; |
| 37 | __u32 uid; | 37 | __u32 uid; |
| 38 | __u32 gid; | 38 | __u32 gid; |
| 39 | dev_t rdev; | ||
| 39 | __u64 size; | 40 | __u64 size; |
| 40 | union { | 41 | union { |
| 41 | struct { | 42 | struct { |
| @@ -46,7 +47,6 @@ struct nfs_fattr { | |||
| 46 | __u64 used; | 47 | __u64 used; |
| 47 | } nfs3; | 48 | } nfs3; |
| 48 | } du; | 49 | } du; |
| 49 | dev_t rdev; | ||
| 50 | struct nfs_fsid fsid; | 50 | struct nfs_fsid fsid; |
| 51 | __u64 fileid; | 51 | __u64 fileid; |
| 52 | struct timespec atime; | 52 | struct timespec atime; |
| @@ -56,6 +56,7 @@ struct nfs_fattr { | |||
| 56 | __u64 change_attr; /* NFSv4 change attribute */ | 56 | __u64 change_attr; /* NFSv4 change attribute */ |
| 57 | __u64 pre_change_attr;/* pre-op NFSv4 change attribute */ | 57 | __u64 pre_change_attr;/* pre-op NFSv4 change attribute */ |
| 58 | unsigned long time_start; | 58 | unsigned long time_start; |
| 59 | unsigned long gencount; | ||
| 59 | }; | 60 | }; |
| 60 | 61 | ||
| 61 | #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ | 62 | #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ |
| @@ -672,16 +673,16 @@ struct nfs4_rename_res { | |||
| 672 | struct nfs_fattr * new_fattr; | 673 | struct nfs_fattr * new_fattr; |
| 673 | }; | 674 | }; |
| 674 | 675 | ||
| 675 | #define NFS4_SETCLIENTID_NAMELEN (56) | 676 | #define NFS4_SETCLIENTID_NAMELEN (127) |
| 676 | struct nfs4_setclientid { | 677 | struct nfs4_setclientid { |
| 677 | const nfs4_verifier * sc_verifier; | 678 | const nfs4_verifier * sc_verifier; |
| 678 | unsigned int sc_name_len; | 679 | unsigned int sc_name_len; |
| 679 | char sc_name[NFS4_SETCLIENTID_NAMELEN]; | 680 | char sc_name[NFS4_SETCLIENTID_NAMELEN + 1]; |
| 680 | u32 sc_prog; | 681 | u32 sc_prog; |
| 681 | unsigned int sc_netid_len; | 682 | unsigned int sc_netid_len; |
| 682 | char sc_netid[RPCBIND_MAXNETIDLEN]; | 683 | char sc_netid[RPCBIND_MAXNETIDLEN + 1]; |
| 683 | unsigned int sc_uaddr_len; | 684 | unsigned int sc_uaddr_len; |
| 684 | char sc_uaddr[RPCBIND_MAXUADDRLEN]; | 685 | char sc_uaddr[RPCBIND_MAXUADDRLEN + 1]; |
| 685 | u32 sc_cb_ident; | 686 | u32 sc_cb_ident; |
| 686 | }; | 687 | }; |
| 687 | 688 | ||
diff --git a/include/linux/sunrpc/xprtrdma.h b/include/linux/sunrpc/xprtrdma.h index 4de56b1d372b..54a379c9e8eb 100644 --- a/include/linux/sunrpc/xprtrdma.h +++ b/include/linux/sunrpc/xprtrdma.h | |||
| @@ -66,9 +66,6 @@ | |||
| 66 | 66 | ||
| 67 | #define RPCRDMA_INLINE_PAD_THRESH (512)/* payload threshold to pad (bytes) */ | 67 | #define RPCRDMA_INLINE_PAD_THRESH (512)/* payload threshold to pad (bytes) */ |
| 68 | 68 | ||
| 69 | #define RDMA_RESOLVE_TIMEOUT (5*HZ) /* TBD 5 seconds */ | ||
| 70 | #define RDMA_CONNECT_RETRY_MAX (2) /* retries if no listener backlog */ | ||
| 71 | |||
| 72 | /* memory registration strategies */ | 69 | /* memory registration strategies */ |
| 73 | #define RPCRDMA_PERSISTENT_REGISTRATION (1) | 70 | #define RPCRDMA_PERSISTENT_REGISTRATION (1) |
| 74 | 71 | ||
| @@ -78,6 +75,7 @@ enum rpcrdma_memreg { | |||
| 78 | RPCRDMA_MEMWINDOWS, | 75 | RPCRDMA_MEMWINDOWS, |
| 79 | RPCRDMA_MEMWINDOWS_ASYNC, | 76 | RPCRDMA_MEMWINDOWS_ASYNC, |
| 80 | RPCRDMA_MTHCAFMR, | 77 | RPCRDMA_MTHCAFMR, |
| 78 | RPCRDMA_FRMR, | ||
| 81 | RPCRDMA_ALLPHYSICAL, | 79 | RPCRDMA_ALLPHYSICAL, |
| 82 | RPCRDMA_LAST | 80 | RPCRDMA_LAST |
| 83 | }; | 81 | }; |
