forked from openzfs/zfs
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is a large commit that rewrites most of the mounting code, so there is high risk of regression. Most noticable should be running "zfs mount", or the "mountvol" command should list both driveletters and reparsepoints. Ie, "E:" and "E:/dataset". The unmount code has become more sane and reliable, although may have new issues. Storport interface also needed to be re-addressed, since we both create a BUS device. Many various bugs also discovered while going through everything, so many things need retesting. Signed-off-by: Jorgen Lundman <[email protected]>
- Loading branch information
Showing
24 changed files
with
2,855 additions
and
762 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
/* | ||
* CDDL HEADER START | ||
* | ||
* The contents of this file are subject to the terms of the | ||
* Common Development and Distribution License (the "License"). | ||
* You may not use this file except in compliance with the License. | ||
* | ||
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE | ||
* or http://www.opensolaris.org/os/licensing. | ||
* See the License for the specific language governing permissions | ||
* and limitations under the License. | ||
* | ||
* When distributing Covered Code, include this CDDL HEADER in each | ||
* file and include the License file at usr/src/OPENSOLARIS.LICENSE. | ||
* If applicable, add the following below this CDDL HEADER, with the | ||
* fields enclosed by brackets "[]" replaced with your own identifying | ||
* information: Portions Copyright [yyyy] [name of copyright owner] | ||
* | ||
* CDDL HEADER END | ||
*/ | ||
|
||
/* | ||
* Copyright (c) 2024 by Jorgen Lundman <[email protected]>. | ||
*/ | ||
|
||
#ifndef SYS_DRIVER_EXTENSION_H | ||
#define SYS_DRIVER_EXTENSION_H | ||
|
||
struct OpenZFS_Driver_Extension_s { | ||
PDEVICE_OBJECT PhysicalDeviceObject; | ||
PDEVICE_OBJECT LowerDeviceObject; | ||
PDEVICE_OBJECT FunctionalDeviceObject; // AddDevice unknown | ||
PDEVICE_OBJECT AddDeviceObject; // Passed along when mounting | ||
PDEVICE_OBJECT ChildDeviceObject; // Passed along when creating | ||
PDEVICE_OBJECT ioctlDeviceObject; // /dev/zfs pdo | ||
PDEVICE_OBJECT fsDiskDeviceObject; // /dev/zfs vdo | ||
PDEVICE_OBJECT StorportDeviceObject; | ||
|
||
PDRIVER_UNLOAD STOR_DriverUnload; | ||
PDRIVER_ADD_DEVICE STOR_AddDevice; | ||
PDRIVER_DISPATCH STOR_MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1]; | ||
}; | ||
|
||
typedef struct OpenZFS_Driver_Extension_s OpenZFS_Driver_Extension; | ||
|
||
#define ZFS_DRIVER_EXTENSION(DO, V) \ | ||
OpenZFS_Driver_Extension *(V) = \ | ||
(OpenZFS_Driver_Extension *) IoGetDriverObjectExtension((DO), (DO)); | ||
|
||
extern int | ||
zfs_init_driver_extension(PDRIVER_OBJECT); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.