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 nfs_to_windows_error(int status, int default_error)
void nfs41_client_free(IN nfs41_client *client)
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)
#define ERROR_BAD_NET_NAME
GLuint GLuint GLsizei count
DWORD WINAPI GetLastError(VOID)
void eprintf(LPCSTR format,...)
int nfs41_session_set_lease(IN nfs41_session *session, IN uint32_t lease_time)
void nfs41_rpc_clnt_free(IN nfs41_rpc_clnt *rpc)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static int cl_addr_compare(IN const struct list_entry *entry, IN const void *value)
#define ERROR_BAD_NETPATH
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
#define ERROR_BAD_NET_RESP
static void root_free(IN nfs41_root *root)
VOID WINAPI AcquireSRWLockShared(PSRWLOCK Lock)
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)
#define NFS4_OPAQUE_LIMIT
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
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)
#define client_entry(pos)
int nfs41_getattr(IN nfs41_session *session, IN OPTIONAL nfs41_path_fh *file, IN bitmap4 *attr_request, OUT nfs41_file_info *info)
void nfs41_root_ref(IN nfs41_root *root)
static int cl_exid_compare(IN const struct list_entry *entry, IN const void *value)
#define ERROR_FILE_NOT_FOUND
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)
static int referral_mount_location(IN nfs41_root *root, IN const fs_location4 *loc, OUT nfs41_client **client_out)
const multi_addr4 * addrs
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
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)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
const char * nfs_error_string(int status)
const nfs41_exchange_id_res * exchangeid
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)
#define InterlockedDecrement
GLsizei const GLint * locations
int nfs41_session_create(IN nfs41_client *client, IN nfs41_session **session_out)
int nfs41_client_owner(IN const char *name, IN uint32_t sec_flavor, OUT client_owner4 *owner)
static struct list_entry * list_search(const struct list_entry *head, const void *value, list_compare_fn compare)
#define InterlockedIncrement
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
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)
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)
#define list_for_each_tmp(entry, tmp, head)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
static int session_get_lease(IN nfs41_session *session, IN OPTIONAL uint32_t lease_time)
void nfs41_root_deref(IN nfs41_root *root)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
static SERVICE_STATUS status
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)
bool_t multi_addr_find(IN const multi_addr4 *addrs, IN const netaddr4 *addr, OUT OPTIONAL uint32_t *index_out)
enum nfsstat4 nfs41_reclaim_complete(IN nfs41_session *session)
VOID WINAPI ReleaseSRWLockShared(PSRWLOCK Lock)
PULONG MinorVersion OPTIONAL