From 7655d14b6ad54f45e93c7c03fdc311b118b7a333 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 26 Nov 2021 12:49:39 +1100 Subject: [PATCH] Rebase against 67d0509f2f523935b0f4dbd3a713125252b37627. --- ...te-usable-device-paths-into-HKLM-SYS.patch | 24 ++++++++--------- ...l32-Advertise-junction-point-support.patch | 26 +++++++++--------- ...e-check-before-returning-a-default-s.patch | 27 +++++++++++-------- patches/patchinstall.sh | 2 +- staging/upstream-commit | 2 +- 5 files changed, 44 insertions(+), 37 deletions(-) diff --git a/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch b/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch index 11d5f7b5..3df788b1 100644 --- a/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch +++ b/patches/mountmgr-DosDevices/0001-mountmgr.sys-Write-usable-device-paths-into-HKLM-SYS.patch @@ -1,4 +1,4 @@ -From 0a08aa6899527ecb02171b95e777d0549489fe3f Mon Sep 17 00:00:00 2001 +From 4a7715a3ef8b71417f049ea8c110ad2f5486d135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 30 Mar 2015 04:01:51 +0200 Subject: [PATCH] mountmgr.sys: Write usable device paths into @@ -15,10 +15,10 @@ Based on a patch by Bernhard Übelacker. 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index c8e7d6bf088..426187a4512 100644 +index d14ccfadb05..199f3e90846 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c -@@ -1205,8 +1205,8 @@ static NTSTATUS set_volume_info( struct volume *volume, struct dos_drive *drive, +@@ -1083,8 +1083,8 @@ static NTSTATUS set_volume_info( struct volume *volume, struct dos_drive *drive, id = disk_device->unix_mount; id_len = strlen( disk_device->unix_mount ) + 1; } @@ -30,12 +30,12 @@ index c8e7d6bf088..426187a4512 100644 return STATUS_SUCCESS; } diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c -index 50be9eb740f..6667d214560 100644 +index 0869e96766a..468d7401e4a 100644 --- a/dlls/mountmgr.sys/mountmgr.c +++ b/dlls/mountmgr.sys/mountmgr.c -@@ -55,14 +55,21 @@ struct mount_point - static struct list mount_points_list = LIST_INIT(mount_points_list); - static HKEY mount_key; +@@ -52,14 +52,21 @@ static HKEY mount_key; + + unixlib_handle_t mountmgr_handle = 0; -void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len ) +void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len, int drive ) @@ -58,10 +58,10 @@ index 50be9eb740f..6667d214560 100644 else mount->id_len = 0; } diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h -index 85c58062275..3454b1a8c73 100644 +index 520055f3fb8..f51b28e24f9 100644 --- a/dlls/mountmgr.sys/mountmgr.h +++ b/dlls/mountmgr.sys/mountmgr.h -@@ -106,7 +106,8 @@ extern struct mount_point *add_dosdev_mount_point( DEVICE_OBJECT *device, UNICOD +@@ -113,7 +113,8 @@ extern struct mount_point *add_dosdev_mount_point( DEVICE_OBJECT *device, UNICOD extern struct mount_point *add_volume_mount_point( DEVICE_OBJECT *device, UNICODE_STRING *device_name, const GUID *guid ) DECLSPEC_HIDDEN; extern void delete_mount_point( struct mount_point *mount ) DECLSPEC_HIDDEN; @@ -69,8 +69,8 @@ index 85c58062275..3454b1a8c73 100644 + +extern void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len, int drive ) DECLSPEC_HIDDEN; - extern ULONG get_dhcp_request_param( const NET_LUID *adapter, struct mountmgr_dhcp_request_param *param, char *buf, - ULONG offset, ULONG size ) DECLSPEC_HIDDEN; + extern ULONG get_dhcp_request_param( const char *unix_name, struct mountmgr_dhcp_request_param *param, + char *buf, ULONG offset, ULONG size ) DECLSPEC_HIDDEN; -- -2.30.2 +2.33.0 diff --git a/patches/ntdll-Junction_Points/0006-kernel32-Advertise-junction-point-support.patch b/patches/ntdll-Junction_Points/0006-kernel32-Advertise-junction-point-support.patch index d7a3e358..52d8c06e 100644 --- a/patches/ntdll-Junction_Points/0006-kernel32-Advertise-junction-point-support.patch +++ b/patches/ntdll-Junction_Points/0006-kernel32-Advertise-junction-point-support.patch @@ -1,21 +1,22 @@ -From 0066234ca48eee5b847de57d552966b8fbb14f95 Mon Sep 17 00:00:00 2001 +From eb3264141add0ad12a6774b6ee10ba459e2a71e0 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Sat, 12 Dec 2020 17:28:31 -0700 Subject: [PATCH] kernel32: Advertise junction point support. --- - dlls/mountmgr.sys/device.c | 80 +++++++++++++++++++++++++++++++++++++- + dlls/mountmgr.sys/device.c | 82 +++++++++++++++++++++++++++++++++++++- dlls/ntdll/tests/file.c | 9 ++++- - 2 files changed, 86 insertions(+), 3 deletions(-) + 2 files changed, 87 insertions(+), 4 deletions(-) diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index 04e8fe3c0f5..c8e7d6bf088 100644 +index 2be8d8cfab6..fc32b57cf70 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c -@@ -31,6 +31,21 @@ - #ifdef HAVE_SYS_IOCTL_H - # include - #endif +@@ -28,7 +28,21 @@ + #include + #include + #include +-#include +#ifdef HAVE_SYS_STATFS_H +# include +#endif @@ -34,13 +35,14 @@ index 04e8fe3c0f5..c8e7d6bf088 100644 #define NONAMELESSUNION -@@ -1902,6 +1917,68 @@ static NTSTATUS query_property( struct disk_device *device, IRP *irp ) +@@ -1654,6 +1668,69 @@ static NTSTATUS query_property( struct disk_device *device, IRP *irp ) return status; } +static DWORD get_fs_flags( struct volume *volume ) +{ -+#if defined(__NR_renameat2) || defined(RENAME_SWAP) ++#if 0 ++/*#if defined(__NR_renameat2) || defined(RENAME_SWAP)*/ +#if defined(HAVE_FSTATFS) + struct statfs stfs; +#elif defined(HAVE_FSTATVFS) @@ -103,7 +105,7 @@ index 04e8fe3c0f5..c8e7d6bf088 100644 static NTSTATUS WINAPI harddisk_query_volume( DEVICE_OBJECT *device, IRP *irp ) { IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp ); -@@ -1990,7 +2067,8 @@ static NTSTATUS WINAPI harddisk_query_volume( DEVICE_OBJECT *device, IRP *irp ) +@@ -1742,7 +1819,8 @@ static NTSTATUS WINAPI harddisk_query_volume( DEVICE_OBJECT *device, IRP *irp ) memcpy(info->FileSystemName, fat32W, info->FileSystemNameLength); break; default: @@ -142,5 +144,5 @@ index c5b3b83802e..084398ba83d 100644 { skip("File system does not support reparse points.\n"); -- -2.30.2 +2.33.0 diff --git a/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch b/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch index a07f49a6..857362d3 100644 --- a/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch +++ b/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch @@ -1,4 +1,4 @@ -From 4b28fdca0eed2a8307b7f0acb26748713a87181a Mon Sep 17 00:00:00 2001 +From effd494310c2ba0e003ec81182a0e456e34a8aee Mon Sep 17 00:00:00 2001 From: Alex Henrie Date: Tue, 29 Dec 2015 00:48:02 -0700 Subject: [PATCH] mountmgr.sys: Do a device check before returning a default @@ -6,14 +6,14 @@ Subject: [PATCH] mountmgr.sys: Do a device check before returning a default Fixes https://bugs.winehq.org/show_bug.cgi?id=39793 --- - dlls/mountmgr.sys/device.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) + dlls/mountmgr.sys/device.c | 29 +++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index 4dfe0c62916..f196ca9803f 100644 +index 199f3e90846..56ca6af4cd9 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c -@@ -28,6 +28,9 @@ +@@ -27,6 +27,9 @@ #include #include #include @@ -21,9 +21,9 @@ index 4dfe0c62916..f196ca9803f 100644 +# include +#endif #include - #include - #ifdef HAVE_SYS_IOCTL_H -@@ -2241,6 +2244,27 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p + #ifdef HAVE_SYS_STATFS_H + # include +@@ -1994,6 +1997,32 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p sprintfW( dos_name, dos_name_format, n ); @@ -48,9 +48,14 @@ index 4dfe0c62916..f196ca9803f 100644 + } +#endif + - /* create DOS device */ - unlink( dosdevices_path ); - if (symlink( unix_path, dosdevices_path ) != 0) ++ /* create DOS device */ ++ unlink( dosdevices_path ); ++ if (symlink( unix_path, dosdevices_path ) != 0) ++ return FALSE; ++ + /* create NT device */ + sprintfW( nt_buffer, nt_name_format, n - 1 ); + RtlInitUnicodeString( &nt_name, nt_buffer ); -- 2.33.0 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index dbdf746b..96c9f999 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "5e42498e634abda051aa59a3faeb2cf10469b1a6" + echo "67d0509f2f523935b0f4dbd3a713125252b37627" } # Show version information diff --git a/staging/upstream-commit b/staging/upstream-commit index 98fecee8..53e1953c 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -5e42498e634abda051aa59a3faeb2cf10469b1a6 +67d0509f2f523935b0f4dbd3a713125252b37627