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 ...
This commit is contained in:
+7
-12
@@ -137,7 +137,7 @@ struct nfs_inode {
|
||||
unsigned long attrtimeo_timestamp;
|
||||
__u64 change_attr; /* v4 only */
|
||||
|
||||
unsigned long last_updated;
|
||||
unsigned long attr_gencount;
|
||||
/* "Generation counter" for the attribute cache. This is
|
||||
* bumped whenever we update the metadata on the
|
||||
* server.
|
||||
@@ -200,11 +200,10 @@ struct nfs_inode {
|
||||
/*
|
||||
* Bit offsets in flags field
|
||||
*/
|
||||
#define NFS_INO_REVALIDATING (0) /* revalidating attrs */
|
||||
#define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */
|
||||
#define NFS_INO_STALE (2) /* possible stale inode */
|
||||
#define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */
|
||||
#define NFS_INO_MOUNTPOINT (4) /* inode is remote mountpoint */
|
||||
#define NFS_INO_ADVISE_RDPLUS (0) /* advise readdirplus */
|
||||
#define NFS_INO_STALE (1) /* possible stale inode */
|
||||
#define NFS_INO_ACL_LRU_SET (2) /* Inode is on the LRU list */
|
||||
#define NFS_INO_MOUNTPOINT (3) /* inode is remote mountpoint */
|
||||
|
||||
static inline struct nfs_inode *NFS_I(const struct inode *inode)
|
||||
{
|
||||
@@ -345,15 +344,11 @@ extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ct
|
||||
extern void put_nfs_open_context(struct nfs_open_context *ctx);
|
||||
extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode);
|
||||
extern u64 nfs_compat_user_ino64(u64 fileid);
|
||||
extern void nfs_fattr_init(struct nfs_fattr *fattr);
|
||||
|
||||
/* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */
|
||||
extern __be32 root_nfs_parse_addr(char *name); /*__init*/
|
||||
|
||||
static inline void nfs_fattr_init(struct nfs_fattr *fattr)
|
||||
{
|
||||
fattr->valid = 0;
|
||||
fattr->time_start = jiffies;
|
||||
}
|
||||
extern unsigned long nfs_inc_attr_generation_counter(void);
|
||||
|
||||
/*
|
||||
* linux/fs/nfs/file.c
|
||||
|
||||
@@ -119,7 +119,6 @@ struct nfs_server {
|
||||
void (*destroy)(struct nfs_server *);
|
||||
|
||||
atomic_t active; /* Keep trace of any activity to this server */
|
||||
wait_queue_head_t active_wq; /* Wait for any activity to stop */
|
||||
|
||||
/* mountd-related mount options */
|
||||
struct sockaddr_storage mountd_address;
|
||||
|
||||
@@ -65,4 +65,8 @@ struct nfs_mount_data {
|
||||
#define NFS_MOUNT_UNSHARED 0x8000 /* 5 */
|
||||
#define NFS_MOUNT_FLAGMASK 0xFFFF
|
||||
|
||||
/* The following are for internal use only */
|
||||
#define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000
|
||||
#define NFS_MOUNT_LOOKUP_CACHE_NONE 0x20000
|
||||
|
||||
#endif
|
||||
|
||||
@@ -36,6 +36,7 @@ struct nfs_fattr {
|
||||
__u32 nlink;
|
||||
__u32 uid;
|
||||
__u32 gid;
|
||||
dev_t rdev;
|
||||
__u64 size;
|
||||
union {
|
||||
struct {
|
||||
@@ -46,7 +47,6 @@ struct nfs_fattr {
|
||||
__u64 used;
|
||||
} nfs3;
|
||||
} du;
|
||||
dev_t rdev;
|
||||
struct nfs_fsid fsid;
|
||||
__u64 fileid;
|
||||
struct timespec atime;
|
||||
@@ -56,6 +56,7 @@ struct nfs_fattr {
|
||||
__u64 change_attr; /* NFSv4 change attribute */
|
||||
__u64 pre_change_attr;/* pre-op NFSv4 change attribute */
|
||||
unsigned long time_start;
|
||||
unsigned long gencount;
|
||||
};
|
||||
|
||||
#define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */
|
||||
@@ -672,16 +673,16 @@ struct nfs4_rename_res {
|
||||
struct nfs_fattr * new_fattr;
|
||||
};
|
||||
|
||||
#define NFS4_SETCLIENTID_NAMELEN (56)
|
||||
#define NFS4_SETCLIENTID_NAMELEN (127)
|
||||
struct nfs4_setclientid {
|
||||
const nfs4_verifier * sc_verifier;
|
||||
unsigned int sc_name_len;
|
||||
char sc_name[NFS4_SETCLIENTID_NAMELEN];
|
||||
char sc_name[NFS4_SETCLIENTID_NAMELEN + 1];
|
||||
u32 sc_prog;
|
||||
unsigned int sc_netid_len;
|
||||
char sc_netid[RPCBIND_MAXNETIDLEN];
|
||||
char sc_netid[RPCBIND_MAXNETIDLEN + 1];
|
||||
unsigned int sc_uaddr_len;
|
||||
char sc_uaddr[RPCBIND_MAXUADDRLEN];
|
||||
char sc_uaddr[RPCBIND_MAXUADDRLEN + 1];
|
||||
u32 sc_cb_ident;
|
||||
};
|
||||
|
||||
|
||||
@@ -66,9 +66,6 @@
|
||||
|
||||
#define RPCRDMA_INLINE_PAD_THRESH (512)/* payload threshold to pad (bytes) */
|
||||
|
||||
#define RDMA_RESOLVE_TIMEOUT (5*HZ) /* TBD 5 seconds */
|
||||
#define RDMA_CONNECT_RETRY_MAX (2) /* retries if no listener backlog */
|
||||
|
||||
/* memory registration strategies */
|
||||
#define RPCRDMA_PERSISTENT_REGISTRATION (1)
|
||||
|
||||
@@ -78,6 +75,7 @@ enum rpcrdma_memreg {
|
||||
RPCRDMA_MEMWINDOWS,
|
||||
RPCRDMA_MEMWINDOWS_ASYNC,
|
||||
RPCRDMA_MTHCAFMR,
|
||||
RPCRDMA_FRMR,
|
||||
RPCRDMA_ALLPHYSICAL,
|
||||
RPCRDMA_LAST
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user