39 if (lhs->major > rhs->major)
return 1;
40 if (lhs->major < rhs->major)
return -1;
41 if (lhs->minor > rhs->minor)
return 1;
42 if (lhs->minor < rhs->minor)
return -1;
55 dprintf(
SBLVL,
"creating superblock for fsid(%llu,%llu)\n",
56 fsid->major, fsid->minor);
61 eprintf(
"failed to allocate superblock " 62 "for fsid(%llu,%llu)\n", fsid->major, fsid->minor);
79 bool_t supports_named_attrs;
92 attr_request.
count = 3;
99 &attr_request, &
info, &supports_named_attrs);
101 eprintf(
"nfs41_superblock_getattr() failed with %s when fetching " 121 superblock->ea_support = supports_named_attrs;
149 "maxread=%llu, maxwrite=%llu, layout_types: 0x%X, " 150 "cansettime=%u, time_delta={%llu,%u}, aclsupport=%u, " 151 "link_support=%u, symlink_support=%u, case_preserving=%u, " 152 "case_insensitive=%u\n",
185 FsAttrs->FileSystemNameLength = 0;
187 dprintf(
SBLVL,
"FileFsAttributeInformation: case_preserving %u, " 188 "case_insensitive %u, max component %u\n",
190 FsAttrs->MaximumComponentNameLength);
195 #define superblock_entry(pos) list_container(pos, nfs41_superblock, entry) 244 dprintf(
SBLVL,
"--> nfs41_superblock_for_fh(fsid(%llu,%llu))\n",
245 fsid->major, fsid->minor);
261 dprintf(
SBLVL,
"found existing superblock in server list " 269 dprintf(
SBLVL,
"found newly created superblock in server list " 270 "[exclusive lock]\n");
290 dprintf(
SBLVL,
"<-- nfs41_superblock_for_fh() returning %p, status %d\n",
static int get_superblock_attrs(IN nfs41_session *session, IN nfs41_superblock *superblock, IN nfs41_path_fh *file)
static rfbScreenInfoPtr server
#define NFS41_MAX_COMPONENT_LEN
void nfs41_superblock_list_init(IN nfs41_superblock_list *superblocks)
static int superblock_create(IN const nfs41_fsid *fsid, OUT nfs41_superblock **superblock_out)
DWORD WINAPI GetLastError(VOID)
void eprintf(LPCSTR format,...)
#define FILE_SUPPORTS_REPARSE_POINTS
static __inline int compare_fsid(IN const nfs41_fsid *lhs, IN const nfs41_fsid *rhs)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
int nfs41_superblock_getattr(IN nfs41_session *session, IN nfs41_path_fh *file, IN bitmap4 *attr_request, OUT nfs41_file_info *info, OUT bool_t *supports_named_attrs)
VOID WINAPI AcquireSRWLockShared(PSRWLOCK Lock)
void nfs41_superblock_space_changed(IN nfs41_superblock *superblock)
static __inline void nfs41_superblock_supported_attrs(IN const nfs41_superblock *superblock, IN OUT bitmap4 *attrs)
static __inline nfs41_server * client_server(IN nfs41_client *client)
VOID WINAPI ReleaseSRWLockExclusive(PSRWLOCK Lock)
static nfs41_superblock * find_superblock(IN nfs41_superblock_list *superblocks, IN const nfs41_fsid *fsid)
#define FILE_CASE_SENSITIVE_SEARCH
const char * nfs_error_string(int status)
void nfs41_superblock_fs_attributes(IN const nfs41_superblock *superblock, OUT PFILE_FS_ATTRIBUTE_INFORMATION FsAttrs)
int nfs41_superblock_for_fh(IN nfs41_session *session, IN const nfs41_fsid *fsid, IN const nfs41_fh *parent OPTIONAL, OUT nfs41_path_fh *file)
static int superblock_compare(const struct list_entry *entry, const void *value)
#define memcpy(s1, s2, n)
#define FILE_CASE_PRESERVED_NAMES
static struct list_entry * list_search(const struct list_entry *head, const void *value, list_compare_fn compare)
#define FILE_SUPPORTS_HARD_LINKS
#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES
#define list_for_each_tmp(entry, tmp, head)
VOID WINAPI InitializeSRWLock(PSRWLOCK Lock)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
#define FILE_PERSISTENT_ACLS
#define FILE_SUPPORTS_REMOTE_STORAGE
#define superblock_entry(pos)
static SERVICE_STATUS status
void nfs41_superblock_list_free(IN nfs41_superblock_list *superblocks)
static __inline bool_t bitmap_isset(IN const bitmap4 *mask, IN uint32_t word, IN uint32_t flag)
VOID WINAPI ReleaseSRWLockShared(PSRWLOCK Lock)
VOID WINAPI AcquireSRWLockExclusive(PSRWLOCK Lock)
PULONG MinorVersion OPTIONAL