mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-02 00:34:13 +08:00
mdbx-windows: fix ERROR_NOT_SUPPORTED
while opening UNC pathnames.
Resolve https://github.com/miranda-ng/miranda-ng/issues/2627 Change-Id: Iec06554dfcb9e0db215662d93fb5824cfe9ac7ef
This commit is contained in:
parent
659fbb3df7
commit
2a740d3807
@ -10118,7 +10118,9 @@ static __cold int mdbx_setup_lck(MDBX_env *env, char *lck_pathname,
|
||||
|
||||
/* ensure the file system is read-only */
|
||||
err = mdbx_check_fs_rdonly(env->me_lazy_fd, lck_pathname, err);
|
||||
if (err != MDBX_SUCCESS)
|
||||
if (err != MDBX_SUCCESS &&
|
||||
/* ignore ERROR_NOT_SUPPORTED for exclusive mode */
|
||||
!(err == MDBX_ENOSYS && (env->me_flags & MDBX_EXCLUSIVE)))
|
||||
return err;
|
||||
|
||||
/* LY: without-lck mode (e.g. exclusive or on read-only filesystem) */
|
||||
|
@ -120,6 +120,9 @@ typedef struct _FILE_PROVIDER_EXTERNAL_INFO_V1 {
|
||||
#ifndef STATUS_INVALID_DEVICE_REQUEST
|
||||
#define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS)0xC0000010L)
|
||||
#endif
|
||||
#ifndef STATUS_NOT_SUPPORTED
|
||||
#define STATUS_NOT_SUPPORTED ((NTSTATUS)0xC00000BBL)
|
||||
#endif
|
||||
|
||||
#ifndef FILE_DEVICE_FILE_SYSTEM
|
||||
#define FILE_DEVICE_FILE_SYSTEM 0x00000009
|
||||
@ -1067,7 +1070,8 @@ static int mdbx_check_fs_local(mdbx_filehandle_t handle, int flags) {
|
||||
if (!(flags & MDBX_EXCLUSIVE))
|
||||
return ERROR_REMOTE_STORAGE_MEDIA_ERROR;
|
||||
} else if (rc != STATUS_OBJECT_NOT_EXTERNALLY_BACKED &&
|
||||
rc != STATUS_INVALID_DEVICE_REQUEST)
|
||||
rc != STATUS_INVALID_DEVICE_REQUEST &&
|
||||
rc != STATUS_NOT_SUPPORTED)
|
||||
return ntstatus2errcode(rc);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user