[BTRFS] Allow driver to start at first stage when no hive is present.
authorPierre Schweitzer <pierre@reactos.org>
Wed, 15 Aug 2018 14:35:05 +0000 (16:35 +0200)
committerPierre Schweitzer <pierre@reactos.org>
Wed, 15 Aug 2018 14:35:05 +0000 (16:35 +0200)
Contrary to upstream, we will ignore failure when opening registry
and will keep going.

CORE-13769

drivers/filesystems/btrfs/btrfs.c

index 236184e..27a1572 100644 (file)
@@ -5563,12 +5563,19 @@ NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING Regi
 
     InitializeObjectAttributes(&oa, RegistryPath, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL);
     Status = ZwCreateKey(&regh, KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY, &oa, 0, NULL, REG_OPTION_NON_VOLATILE, &dispos);
+    /* ReactOS specific hack: allow BtrFS driver to start in 1st stage with no hive */
+#ifndef __REACTOS__
     if (!NT_SUCCESS(Status)) {
         ERR("ZwCreateKey returned %08x\n", Status);
         return Status;
     }
 
     watch_registry(regh);
+#else
+    if (NT_SUCCESS(Status)) {
+        watch_registry(regh);
+    }
+#endif
 
     Status = IoReportDetectedDevice(drvobj, InterfaceTypeUndefined, 0xFFFFFFFF, 0xFFFFFFFF,
                                     NULL, NULL, 0, &cde->buspdo);