32# ifndef PNFS_DISABLE_READ
33# define PNFS_ENABLE_READ
35# ifndef PNFS_DISABLE_WRITE
36# define PNFS_ENABLE_WRITE
39# define PNFS_THREADING
106#define NFL4_UFLG_MASK 0x0000003F
107#define NFL4_UFLG_DENSE 0x00000001
108#define NFL4_UFLG_COMMIT_THRU_MDS 0x00000002
109#define NFL4_UFLG_STRIPE_UNIT_SIZE_MASK 0xFFFFFFC0
111#define PNFS_DEVICEID_SIZE 16
253 IN unsigned char *deviceid,
280 OUT unsigned char *buffer_out,
333 return relative_offset / unit_size;
344 return layout->pattern_offset + unit_size * sui;
365 return device->stripes.arr[stripeid];
static struct all_devices * devices
GLuint GLsizei GLsizei * length
__inline uint32_t stripe_index(IN const pnfs_file_layout *layout, IN uint64_t sui, IN uint32_t stripe_count)
void pnfs_layout_io_finished(IN pnfs_layout_state *state)
__inline uint32_t layout_unit_size(IN const pnfs_file_layout *layout)
struct __pnfs_file_device pnfs_file_device
__inline uint32_t data_server_index(IN const pnfs_file_device *device, IN uint32_t stripeid)
#define NFL4_UFLG_STRIPE_UNIT_SIZE_MASK
enum pnfs_status pnfs_file_device_notify(IN struct pnfs_file_device_list *devices, IN const struct notify_deviceid4 *change)
void pnfs_layout_io_start(IN pnfs_layout_state *state)
enum pnfs_status pnfs_file_device_list_create(OUT struct pnfs_file_device_list **devices_out)
enum pnfs_status pnfs_file_device_get(IN struct __nfs41_session *session, IN struct pnfs_file_device_list *devices, IN unsigned char *deviceid, OUT pnfs_file_device **device_out)
__inline int is_dense(IN const pnfs_file_layout *layout)
__inline uint64_t stripe_unit_offset(IN const pnfs_file_layout *layout, IN uint64_t sui, IN uint32_t unit_size)
void pnfs_layout_state_close(IN struct __nfs41_session *session, IN struct __nfs41_open_state *state, IN bool_t remove)
enum pnfs_status pnfs_layout_list_create(OUT struct pnfs_layout_list **layouts_out)
struct __pnfs_file_layout pnfs_file_layout
enum pnfs_status pnfs_file_layout_recall(IN struct __nfs41_client *client, IN const struct cb_layoutrecall_args *recall)
void pnfs_layout_recall_fenced(IN pnfs_layout_state *state, IN const pnfs_layout *layout)
enum pnfs_status pnfs_write(IN struct __nfs41_root *root, IN struct __nfs41_open_state *state, IN struct __stateid_arg *stateid, IN pnfs_layout_state *layout, IN uint64_t offset, IN uint64_t length, IN unsigned char *buffer, OUT ULONG *len_out, OUT nfs41_file_info *cinfo)
__inline uint64_t stripe_unit_number(IN const pnfs_file_layout *layout, IN uint64_t offset, IN uint32_t unit_size)
#define PNFS_DEVICEID_SIZE
@ PNFSERR_INVALID_FH_LIST
@ PNFSERR_INVALID_DS_INDEX
@ PNFSERR_LAYOUT_RECALLED
__inline int should_commit_to_mds(IN const pnfs_file_layout *layout)
void pnfs_layout_list_free(IN struct pnfs_layout_list *layouts)
enum pnfs_status pnfs_data_server_client(IN struct __nfs41_root *root, IN pnfs_data_server *server, IN uint32_t default_lease, OUT struct __nfs41_client **client_out)
struct __pnfs_data_server pnfs_data_server
#define NFL4_UFLG_COMMIT_THRU_MDS
enum pnfs_status pnfs_layout_state_prepare(IN pnfs_layout_state *state, IN struct __nfs41_session *session, IN nfs41_path_fh *meta_file, IN struct __stateid_arg *stateid, IN enum pnfs_iomode iomode, IN uint64_t offset, IN uint64_t length)
struct __pnfs_data_server_list pnfs_data_server_list
void pnfs_file_device_put(IN pnfs_file_device *device)
struct __pnfs_layout pnfs_layout
@ PNFS_LAYOUT_UNAVAILABLE
struct __pnfs_file_layout_handles pnfs_file_layout_handles
enum pnfs_status pnfs_layout_recall_status(IN const pnfs_layout_state *state, IN const pnfs_layout *layout)
struct __pnfs_stripe_indices pnfs_stripe_indices
enum pnfs_status pnfs_layout_state_open(IN struct __nfs41_open_state *state, OUT pnfs_layout_state **layout_out)
struct __pnfs_device pnfs_device
enum pnfs_status pnfs_read(IN struct __nfs41_root *root, IN struct __nfs41_open_state *state, IN struct __stateid_arg *stateid, IN pnfs_layout_state *layout, IN uint64_t offset, IN uint64_t length, OUT unsigned char *buffer_out, OUT ULONG *len_out)
void pnfs_file_device_list_invalidate(IN struct pnfs_file_device_list *devices)
void pnfs_file_device_list_free(IN struct pnfs_file_device_list *devices)
struct __pnfs_layout_state pnfs_layout_state
struct __nfs41_client * client
enum pnfs_layout_type type
enum pnfs_device_status status
unsigned char deviceid[PNFS_DEVICEID_SIZE]
struct pnfs_file_device_list * devices
pnfs_stripe_indices stripes
pnfs_data_server_list servers
pnfs_file_device * device
unsigned char deviceid[PNFS_DEVICEID_SIZE]
pnfs_file_layout_handles filehandles
enum pnfs_layout_status status
struct list_entry recalls
struct list_entry layouts
enum pnfs_layout_type type
static rfbScreenInfoPtr server