diff options
Diffstat (limited to 'fs/nfs/nfs4filelayout.h')
| -rw-r--r-- | fs/nfs/nfs4filelayout.h | 17 | 
1 files changed, 15 insertions, 2 deletions
diff --git a/fs/nfs/nfs4filelayout.h b/fs/nfs/nfs4filelayout.h index cebe01e3795..2e42284253f 100644 --- a/fs/nfs/nfs4filelayout.h +++ b/fs/nfs/nfs4filelayout.h @@ -47,10 +47,17 @@ enum stripetype4 {  };  /* Individual ip address */ +struct nfs4_pnfs_ds_addr { +	struct sockaddr_storage	da_addr; +	size_t			da_addrlen; +	struct list_head	da_node;  /* nfs4_pnfs_dev_hlist dev_dslist */ +	char			*da_remotestr;	/* human readable addr+port */ +}; +  struct nfs4_pnfs_ds {  	struct list_head	ds_node;  /* nfs4_pnfs_dev_hlist dev_dslist */ -	u32			ds_ip_addr; -	u32			ds_port; +	char			*ds_remotestr;	/* comma sep list of addrs */ +	struct list_head	ds_addrs;  	struct nfs_client	*ds_clp;  	atomic_t		ds_count;  }; @@ -89,6 +96,12 @@ FILELAYOUT_LSEG(struct pnfs_layout_segment *lseg)  			    generic_hdr);  } +static inline struct nfs4_deviceid_node * +FILELAYOUT_DEVID_NODE(struct pnfs_layout_segment *lseg) +{ +	return &FILELAYOUT_LSEG(lseg)->dsaddr->id_node; +} +  extern struct nfs_fh *  nfs4_fl_select_ds_fh(struct pnfs_layout_segment *lseg, u32 j);  |