33#define client_entry(pos) list_container(pos, nfs41_client, root_entry)
160 dprintf(
NSLVL,
"<-- root_client_find_addrs() returning 0x%p\n",
164 dprintf(
NSLVL,
"<-- root_client_find_addrs() failed with %d\n",
190 if (
strncmp(
info->exchangeid->server_owner.so_major_id,
198 if (
info->exchangeid->clientid !=
client->clnt_id)
219 info.exchangeid = exchangeid;
226 dprintf(
NSLVL,
"<-- root_client_find() returning 0x%p\n",
230 dprintf(
NSLVL,
"<-- root_client_find() failed with %d\n",
257 if (!use_mds_lease) {
264 eprintf(
"nfs41_getattr() failed with %s\n",
269 lease_time =
info.lease_time;
295 is_data, exchangeid, &
client);
314 eprintf(
"nfs41_reclaim_complete() failed with %s\n",
384 lease_time, &exchangeid, &
client);
405 dprintf(
NSLVL,
"created a duplicate client 0x%p! using "
406 "existing client 0x%p instead\n",
client, existing);
447 for (
i = 0;
i < loc->server_count;
i++) {
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
#define InterlockedIncrement
#define InterlockedDecrement
#define list_for_each_tmp(entry, tmp, head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static struct list_entry * list_search(const struct list_entry *head, const void *value, list_compare_fn compare)
static void list_init(struct list_entry *head)
int nfs_to_windows_error(int status, int default_error)
bool_t multi_addr_find(IN const multi_addr4 *addrs, IN const netaddr4 *addr, OUT OPTIONAL uint32_t *index_out)
void eprintf(LPCSTR format,...)
const char * nfs_error_string(int status)
VOID WINAPI ReleaseSRWLockShared(PSRWLOCK Lock)
VOID WINAPI AcquireSRWLockShared(PSRWLOCK Lock)
GLuint GLuint GLsizei count
GLsizei const GLint * locations
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define ERROR_FILE_NOT_FOUND
static int root_client_create(IN nfs41_root *root, IN nfs41_rpc_clnt *rpc, IN bool_t is_data, IN OPTIONAL uint32_t lease_time, IN const nfs41_exchange_id_res *exchangeid, OUT nfs41_client **client_out)
static void root_free(IN nfs41_root *root)
static int referral_mount_location(IN nfs41_root *root, IN const fs_location4 *loc, OUT nfs41_client **client_out)
void nfs41_root_ref(IN nfs41_root *root)
int nfs41_root_mount_referral(IN nfs41_root *root, IN const fs_locations4 *locations, OUT const fs_location4 **loc_out, OUT nfs41_client **client_out)
static int root_client_find_addrs(IN nfs41_root *root, IN const multi_addr4 *addrs, IN bool_t is_data, OUT nfs41_client **client_out)
int nfs41_root_create(IN const char *name, IN uint32_t sec_flavor, IN uint32_t wsize, IN uint32_t rsize, OUT nfs41_root **root_out)
static int root_client_find(IN nfs41_root *root, IN const nfs41_exchange_id_res *exchangeid, IN bool_t is_data, OUT nfs41_client **client_out)
static int session_get_lease(IN nfs41_session *session, IN OPTIONAL uint32_t lease_time)
void nfs41_root_deref(IN nfs41_root *root)
int nfs41_root_mount_addrs(IN nfs41_root *root, IN const multi_addr4 *addrs, IN bool_t is_data, IN OPTIONAL uint32_t lease_time, OUT nfs41_client **client_out)
static int cl_addr_compare(IN const struct list_entry *entry, IN const void *value)
#define client_entry(pos)
static int cl_exid_compare(IN const struct list_entry *entry, IN const void *value)
int nfs41_session_set_lease(IN nfs41_session *session, IN uint32_t lease_time)
int nfs41_client_owner(IN const char *name, IN uint32_t sec_flavor, OUT client_owner4 *owner)
int nfs41_rpc_clnt_create(IN const multi_addr4 *addrs, IN uint32_t wsize, IN uint32_t rsize, IN uint32_t uid, IN uint32_t gid, IN uint32_t sec_flavor, OUT nfs41_rpc_clnt **rpc_out)
int nfs41_server_resolve(IN const char *hostname, IN unsigned short port, OUT multi_addr4 *addrs)
uint32_t nfs41_exchange_id_flags(IN bool_t is_data)
int nfs41_session_create(IN nfs41_client *client, IN nfs41_session **session_out)
void nfs41_rpc_clnt_free(IN nfs41_rpc_clnt *rpc)
void nfs41_client_free(IN nfs41_client *client)
int nfs41_client_create(IN nfs41_rpc_clnt *rpc, IN const client_owner4 *owner, IN bool_t is_data, IN const struct __nfs41_exchange_id_res *exchangeid, OUT nfs41_client **client_out)
@ FATTR4_WORD0_LEASE_TIME
#define NFS4_OPAQUE_LIMIT
int nfs41_getattr(IN nfs41_session *session, IN OPTIONAL nfs41_path_fh *file, IN bitmap4 *attr_request, OUT nfs41_file_info *info)
enum nfsstat4 nfs41_reclaim_complete(IN nfs41_session *session)
int nfs41_exchange_id(IN nfs41_rpc_clnt *rpc, IN client_owner4 *owner, IN uint32_t flags_in, OUT nfs41_exchange_id_res *res_out)
@ EXCHGID4_FLAG_MASK_PNFS
@ EXCHGID4_FLAG_USE_PNFS_DS
PULONG MinorVersion OPTIONAL
const multi_addr4 * addrs
const nfs41_exchange_id_res * exchangeid
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define ERROR_BAD_NETPATH
#define ERROR_BAD_NET_RESP
#define ERROR_BAD_NET_NAME