Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix compiler warnings (Visual Studio 2019) #232

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ZFSin/spl/module/spl/spl-kmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@
// proxy to the machine experiencing memory pressure.
//
// xnu vm variables
extern volatile unsigned int vm_page_free_wanted; // 0 by default smd
extern volatile uint64_t vm_page_free_wanted; // 0 by default smd
extern unsigned int vm_page_free_min; // 3500 by default smd kern.vm_page_free_min, rarely changes
extern volatile unsigned int vm_page_free_count; // will tend to vm_page_free_min smd
extern volatile uint64_t vm_page_free_count; // will tend to vm_page_free_min smd

#define SMALL_PRESSURE_INCURSION_PAGES (vm_page_free_min >> 5)

Expand Down Expand Up @@ -4645,7 +4645,7 @@ spl_free_thread(void *notused)
// trigger a reap below
lowmem = TRUE;
}
extern volatile unsigned int vm_page_speculative_count;
extern volatile uint64_t vm_page_speculative_count;
if ((above_min_free_bytes < 0LL && reserve_low && !early_lots_free &&
!memory_equilibrium && !just_alloced) ||
above_min_free_bytes <= -4LL*1024LL*1024LL) {
Expand Down
6 changes: 3 additions & 3 deletions ZFSin/spl/module/spl/spl-windows.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ unsigned int max_ncpus = 0;
uint64_t total_memory = 0;
uint64_t real_total_memory = 0;

volatile unsigned int vm_page_free_wanted = 0;
volatile uint64_t vm_page_free_wanted = 0;
volatile unsigned int vm_page_free_min = 512;
volatile unsigned int vm_page_free_count = 5000;
volatile unsigned int vm_page_speculative_count = 5500;
volatile uint64_t vm_page_free_count = 5000;
volatile uint64_t vm_page_speculative_count = 5500;

uint64_t spl_GetPhysMem(void);

Expand Down
4 changes: 2 additions & 2 deletions ZFSin/zfs/include/sys/efi_partition.h
Original file line number Diff line number Diff line change
Expand Up @@ -233,8 +233,8 @@ struct partition64 {
#endif

#ifndef _KERNEL
extern int efi_alloc_and_init(int, uint32_t, struct dk_gpt **);
extern int efi_alloc_and_read(int, struct dk_gpt **);
extern int efi_alloc_and_init(uint64_t, uint32_t, struct dk_gpt **);
extern int efi_alloc_and_read(uint64_t, struct dk_gpt **);
extern int efi_write(int, struct dk_gpt *);
extern int efi_rescan(int);
extern void efi_free(struct dk_gpt *);
Expand Down
18 changes: 9 additions & 9 deletions ZFSin/zfs/include/sys/metaslab_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ typedef struct metaslab_alloc_trace {
* of the metaslab_alloc_trace_t record and displayed by mdb.
*/
typedef enum trace_alloc_type {
TRACE_ALLOC_FAILURE = -1ULL,
TRACE_TOO_SMALL = -2ULL,
TRACE_FORCE_GANG = -3ULL,
TRACE_NOT_ALLOCATABLE = -4ULL,
TRACE_GROUP_FAILURE = -5ULL,
TRACE_ENOSPC = -6ULL,
TRACE_CONDENSING = -7ULL,
TRACE_VDEV_ERROR = -8ULL,
TRACE_DISABLED = -9ULL,
TRACE_ALLOC_FAILURE = -1LL,
TRACE_TOO_SMALL = -2LL,
TRACE_FORCE_GANG = -3LL,
TRACE_NOT_ALLOCATABLE = -4LL,
TRACE_GROUP_FAILURE = -5LL,
TRACE_ENOSPC = -6LL,
TRACE_CONDENSING = -7LL,
TRACE_VDEV_ERROR = -8LL,
TRACE_DISABLED = -9LL,
} trace_alloc_type_t;

#define METASLAB_WEIGHT_PRIMARY (1ULL << 63)
Expand Down
2 changes: 1 addition & 1 deletion ZFSin/zfs/include/sys/zfs_context_userland.h
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ extern void zk_thread_join(pthread_t tid);
*/
#define MTX_MAGIC 0x9522f51362a6e326ull
#define MTX_INIT ((void *)NULL)
#define MTX_DEST ((void *)-1UL)
#define MTX_DEST ((void *)-1LL)

typedef struct kmutex {
void *m_owner;
Expand Down
12 changes: 6 additions & 6 deletions ZFSin/zfs/lib/libefi/rdwr_efi.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ int efi_debug = 1;
int efi_debug = 0;
#endif

static int efi_read(int, struct dk_gpt *);
static int efi_read(uint64_t, struct dk_gpt *);

/*
* Return a 32-bit CRC of the contents of the buffer. Pre-and-post
Expand All @@ -139,7 +139,7 @@ efi_crc32(const unsigned char *buf, unsigned int size)
}

static int
read_disk_info(int fd, diskaddr_t *capacity, uint_t *lbsize)
read_disk_info(uint64_t fd, diskaddr_t *capacity, uint_t *lbsize)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is tricky. libefi is a library we got from ZOL, and due to that, it uses posix "int fd" for file-descriptors. I wrote the hacky "wosix" wrapper around that HANDLEs will "often" fit inside an int, and we convert (truncate) between the two using HTOI() and ITOH() - which should "hide" any warnings wrt to truncation.
We could claim ownership of libefi, and make it "ours", but much of libzfs also uses int fd, and changing that could make future merges painful. I can think of a few way to address this though.

Which leads to a bigger discussion on how we should handle that in future.

{
DISK_GEOMETRY_EX geometry_ex;
DWORD len;
Expand All @@ -158,7 +158,7 @@ read_disk_info(int fd, diskaddr_t *capacity, uint_t *lbsize)
}

static int
efi_get_info(int fd, struct dk_cinfo *dki_info)
efi_get_info(uint64_t fd, struct dk_cinfo *dki_info)
{
int rval = 0;
#if defined(__linux__)
Expand Down Expand Up @@ -373,7 +373,7 @@ efi_get_info(int fd, struct dk_cinfo *dki_info)
sizeof (struct dk_part))

int
efi_alloc_and_init(int fd, uint32_t nparts, struct dk_gpt **vtoc)
efi_alloc_and_init(uint64_t fd, uint32_t nparts, struct dk_gpt **vtoc)
{
diskaddr_t capacity = 0;
uint_t lbsize = 0;
Expand Down Expand Up @@ -444,7 +444,7 @@ efi_alloc_and_init(int fd, uint32_t nparts, struct dk_gpt **vtoc)
* Read EFI - return partition number upon success.
*/
int
efi_alloc_and_read(int fd, struct dk_gpt **vtoc)
efi_alloc_and_read(uint64_t fd, struct dk_gpt **vtoc)
{
int rval;
uint32_t nparts;
Expand Down Expand Up @@ -682,7 +682,7 @@ check_label(int fd, dk_efi_t *dk_ioc)
}

static int
efi_read(int fd, struct dk_gpt *vtoc)
efi_read(uint64_t fd, struct dk_gpt *vtoc)
{
int i, j;
int label_len;
Expand Down
6 changes: 3 additions & 3 deletions ZFSin/zfs/lib/libpthread/pthread.h
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ static int pthread_create(pthread_t *th, pthread_attr_t *attr, void *(* func)(vo
if (attr)
{
tv->p_state = attr->p_state;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Bit of a personal style, even though "unsigned ssize;" is legal, I'm not a fan of it. Should it accidentally in the future be corrected to "unsigned int ssize;" I would not be objecting :)

ssize = attr->s_size;
ssize = (unsigned int) attr->s_size;
}

/* Make sure tv->h has value of -1 */
Expand Down Expand Up @@ -965,7 +965,7 @@ static int pthread_mutex_timedlock(pthread_mutex_t *m, struct timespec *ts)
if (ct > t) return ETIMEDOUT;

/* Wait on semaphore within critical section */
WaitForSingleObject(((struct _pthread_crit_t *)m)->sem, t - ct);
WaitForSingleObject(((struct _pthread_crit_t *)m)->sem, (DWORD) (t - ct));

/* Try to grab lock */
if (!pthread_mutex_trylock(m)) return 0;
Expand Down Expand Up @@ -1305,7 +1305,7 @@ static int pthread_cond_timedwait(pthread_cond_t *c, pthread_mutex_t *m, struct

pthread_testcancel();

if (!SleepConditionVariableCS(c, m, tm)) return ETIMEDOUT;
if (!SleepConditionVariableCS(c, m, (DWORD)tm)) return ETIMEDOUT;

/* We can have a spurious wakeup after the timeout */
if (!_pthread_rel_time_in_ms(t)) return ETIMEDOUT;
Expand Down
2 changes: 1 addition & 1 deletion ZFSin/zfs/lib/libspl/getmntany.c
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ int getfsstat(struct statfs *buf, int bufsize, int flags)
if (h != INVALID_HANDLE_VALUE) {
char *dataset;
char cheat[1024];
UID = cheat;
UID = (MOUNTDEV_UNIQUE_ID*)cheat;
DWORD Size;
BOOL gotname = FALSE;

Expand Down
2 changes: 1 addition & 1 deletion ZFSin/zfs/lib/libspl/include/wosix.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ extern int wosix_close(int fd);
extern int wosix_ioctl(int fd, unsigned long request, void *zc);
extern int wosix_read(int fd, void *data, uint32_t len);
extern int wosix_write(int fd, const void *data, uint32_t len);
extern int wosix_isatty(int fd);
extern int wosix_isatty(intptr_t fd);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which would defeat the purpose of a posix wrapper library taking posix "int fd" and handling it for the local platform.

man isatty
     int
     isatty(int fd);

extern int wosix_mkdir(const char *path, mode_t mode);
extern int wosix_pwrite(int fd, const void *buf, size_t nbyte, off_t offset);
extern int wosix_pread(int fd, void *buf, size_t nbyte, off_t offset);
Expand Down
4 changes: 2 additions & 2 deletions ZFSin/zfs/lib/libspl/posix.c
Original file line number Diff line number Diff line change
Expand Up @@ -716,7 +716,7 @@ int tcsetattr(int fildes, int optional_actions,
void console_echo(boolean_t willecho)
{
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
int constype = isatty(hStdin);
int constype = isatty((intptr_t)hStdin);
switch (constype) {
case 0:
default:
Expand Down Expand Up @@ -965,7 +965,7 @@ int wosix_write(int fd, const void *data, uint32_t len)
// Extend isatty() slightly to return 1 for DOS Console, or
// 2 for cygwin/mingw - as we will have to do different things
// for NOECHO etc.
int wosix_isatty(int fd)
int wosix_isatty(intptr_t fd)
{
DWORD mode;
HANDLE h = ITOH(fd);
Expand Down
2 changes: 1 addition & 1 deletion ZFSin/zfs/lib/libspl/xdr_mem.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ xdrmem_setpos(XDR *xdrs, uint_t pos)
caddr_t newaddr = xdrs->x_base + pos;
caddr_t lastaddr = xdrs->x_private + (uint_t)xdrs->x_handy;

if ((long)newaddr > (long)lastaddr)
if ((uintptr_t)newaddr > (uintptr_t)lastaddr)
return (FALSE);
xdrs->x_private = newaddr;
xdrs->x_handy = (int)((uintptr_t)lastaddr - (uintptr_t)newaddr);
Expand Down
2 changes: 1 addition & 1 deletion ZFSin/zfs/lib/libzfs/libzfs_diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ find_shares_object(differ_info_t *di)
(void) strlcpy(fullpath, di->dsmnt, MAXPATHLEN);
(void) strlcat(fullpath, ZDIFF_SHARESDIR, MAXPATHLEN);

if (stat(fullpath, &sb) != 0) {
if (stat(fullpath, (struct stat*)&sb) != 0) {
(void) snprintf(di->errbuf, sizeof (di->errbuf),
dgettext(TEXT_DOMAIN, "Cannot stat %s"), fullpath);
#if !defined (__APPLE__) && !defined(_WIN32)
Expand Down
15 changes: 12 additions & 3 deletions ZFSin/zfs/lib/libzfs/libzfs_import.c
Original file line number Diff line number Diff line change
Expand Up @@ -2100,6 +2100,8 @@ zpool_find_import_win(libzfs_handle_t *hdl, importargs_t *iarg)
continue;
}
#endif
GUID* guid = NULL;
char guid_string[37] = { 0 }; // 32 hex chars + 4 hyphens + null terminator
DWORD ior;
PDRIVE_LAYOUT_INFORMATION_EX partitions;
DWORD partitionsSize = sizeof(DRIVE_LAYOUT_INFORMATION_EX) + 127 * sizeof(PARTITION_INFORMATION_EX);
Expand All @@ -2116,8 +2118,15 @@ zpool_find_import_win(libzfs_handle_t *hdl, importargs_t *iarg)
partitions->PartitionEntry[i].PartitionLength.QuadPart); fflush(stderr);
break;
case PARTITION_STYLE_GPT:
fprintf(stderr, " gpt %d: type %x off 0x%llx len 0x%llx\n", i,
partitions->PartitionEntry[i].Gpt.PartitionType,
guid = &(partitions->PartitionEntry[i].Gpt.PartitionType);
snprintf(guid_string, sizeof(guid_string),
"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
guid->Data1, guid->Data2, guid->Data3,
guid->Data4[0], guid->Data4[1], guid->Data4[2],
guid->Data4[3], guid->Data4[4], guid->Data4[5],
guid->Data4[6], guid->Data4[7]);
fprintf(stderr, " gpt %d: type %s off 0x%llx len 0x%llx\n", i,
guid_string,
partitions->PartitionEntry[i].StartingOffset.QuadPart,
partitions->PartitionEntry[i].PartitionLength.QuadPart); fflush(stderr);
break;
Expand Down Expand Up @@ -2166,7 +2175,7 @@ zpool_find_import_win(libzfs_handle_t *hdl, importargs_t *iarg)
fprintf(stderr, "asking libefi to read label\n"); fflush(stderr);
int error;
struct dk_gpt *vtoc;
error = efi_alloc_and_read(disk, &vtoc);
error = efi_alloc_and_read((uint64_t) disk, &vtoc);
if (error >= 0) {
fprintf(stderr, "EFI read OK, max partitions %d\n", vtoc->efi_nparts); fflush(stderr);
for (int i = 0; i < vtoc->efi_nparts; i++) {
Expand Down
2 changes: 1 addition & 1 deletion ZFSin/zfs/lib/libzfs/libzfs_mount.c
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ dir_is_empty_stat(const char *dirname)
* We only want to return false if the given path is a non empty
* directory, all other errors are handled elsewhere.
*/
if (stat(dirname, &st) < 0 || !S_ISDIR(st.st_mode)) {
if (stat(dirname, (struct stat*)&st) < 0 || !S_ISDIR(st.st_mode)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure we should define _stat64 then typecast it, probably better to change the type to fit the call.

return (B_TRUE);
}

Expand Down
5 changes: 2 additions & 3 deletions ZFSin/zfs/lib/libzfs/libzfs_pool.c
Original file line number Diff line number Diff line change
Expand Up @@ -676,7 +676,7 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname,
*slash = '\0';

if (strval[0] != '\0' &&
(stat(strval, &statbuf) != 0 ||
(stat(strval, (struct stat*) &statbuf) != 0 ||
!S_ISDIR(statbuf.st_mode))) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"'%s' is not a valid directory"),
Expand Down Expand Up @@ -2856,9 +2856,8 @@ zpool_open_delay(int timeout, const char *path, int oflag)
if (path[0] == '#') {
uint64_t offset;
uint64_t len;
char *end = NULL;
char *end = (char*) path;

end = path;
while (end && *end == '#') end++;
offset = strtoull(end, &end, 10);
while (end && *end == '#') end++;
Expand Down
2 changes: 1 addition & 1 deletion ZFSin/zfs/lib/libzpool/kernel.c
Original file line number Diff line number Diff line change
Expand Up @@ -740,7 +740,7 @@ vn_open(char *path, int x1, int flags, int mode, vnode_t **vpp, int x2, int x3)
dsk + 1);
} else {
(void) sprintf(realpath, "%s", path);
if (!(flags & FCREAT) && stat(realpath, &st) == -1) {
if (!(flags & FCREAT) && stat(realpath, (struct stat*)&st) == -1) {
err = errno;
free(realpath);
return (err);
Expand Down
4 changes: 2 additions & 2 deletions ZFSin/zfs/module/nvpair/nvpair.c
Original file line number Diff line number Diff line change
Expand Up @@ -817,7 +817,7 @@ i_get_value_size(data_type_t type, const void *data, uint_t nelem)
value_sz = (uint64_t)nelem * sizeof (uint64_t);

if (data != NULL) {
char *const *strs = data;
char **strs = (char**)data;
uint_t i;

/* no alignment requirement for strings */
Expand Down Expand Up @@ -937,7 +937,7 @@ nvlist_add_common(nvlist_t *nvl, const char *name,
case DATA_TYPE_BOOLEAN:
break;
case DATA_TYPE_STRING_ARRAY: {
char *const *strs = data;
char **strs = (char**) data;
char *buf = NVP_VALUE(nvp);
char **cstrs = (void *)buf;

Expand Down
10 changes: 5 additions & 5 deletions ZFSin/zfs/module/unicode/u8_textprep.c
Original file line number Diff line number Diff line change
Expand Up @@ -1499,7 +1499,7 @@ collect_a_seq(size_t uv, uchar_t *u8s, uchar_t **source, uchar_t *slast,
comb_class[last] = combining_class(uv,
u8s + i, sz);
start[last] = i;
disp[last] = sz;
disp[last] = (uchar_t)sz;

last++;
i += sz;
Expand Down Expand Up @@ -1601,7 +1601,7 @@ collect_a_seq(size_t uv, uchar_t *u8s, uchar_t **source, uchar_t *slast,
TURN_STREAM_SAFE:
*state = U8_STATE_START;
comb_class[last] = 0;
start[last] = saved_sz;
start[last] = (uchar_t)saved_sz;
disp[last] = 2;
last++;

Expand All @@ -1627,7 +1627,7 @@ collect_a_seq(size_t uv, uchar_t *u8s, uchar_t **source, uchar_t *slast,
combining_class(uv,
uts + j, sz);
start[last] = saved_sz + j;
disp[last] = sz;
disp[last] = (uchar_t)sz;

last++;
if (last >=
Expand All @@ -1646,8 +1646,8 @@ collect_a_seq(size_t uv, uchar_t *u8s, uchar_t **source, uchar_t *slast,
u8s[saved_sz++] = uts[i];
} else {
comb_class[last] = i;
start[last] = saved_sz;
disp[last] = sz;
start[last] = (uchar_t)saved_sz;
disp[last] = (uchar_t)sz;
last++;

for (i = 0; i < sz; i++)
Expand Down
8 changes: 4 additions & 4 deletions ZFSin/zfs/module/zfs/zfs_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -7372,7 +7372,7 @@ zfsdev_open(dev_t dev, int flags, int devtype, struct proc *p)
#ifdef _WIN32
int flags = 0;
int devtype = 0;
struct proc *p = current_proc();
PEPROCESS p = current_proc();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fine. But ultimately we want struct proc to be PEPROCESS - but I think perhaps the cleaner option is if we change upstream to use a bunch of porting typedefs, like a zfs_proc_t. I'll ask and see how receptive they are to that idea.

PAGED_CODE();

#endif
Expand Down Expand Up @@ -7405,12 +7405,12 @@ zfsdev_release(dev_t dev, int flags, int devtype, struct proc *p)
#ifdef _WIN32
int flags = 0;
int devtype = 0;
struct proc *p = current_proc();
PEPROCESS p = current_proc();
PAGED_CODE();

#endif

dprintf("zfsdev_release, dev 0x%x flag %02X devtype %d, dev is %p, thread %p\n",
dprintf("zfsdev_release, dev 0x%x flag %02X devtype %d, proc is %p, thread %p\n",
minor(dev), flags, devtype, p, current_thread());
mutex_enter(&zfsdev_state_lock);
error = zfsdev_state_destroy(dev);
Expand Down Expand Up @@ -7864,7 +7864,7 @@ zfs_attach(void)
&ioctlDeviceObject); // Returned ptr to Device Object

if (!NT_SUCCESS(ntStatus)) {
dprintf(("ZFS: Couldn't create the device object /dev/zfs (%wZ)\n", ZFS_DEV_KERNEL));
dprintf("ZFS: Couldn't create the device object /dev/zfs (%wZ)\n", ZFS_DEV_KERNEL);
return ntStatus;
}
dprintf("ZFS: created kernel device node: %p: name %wZ\n", ioctlDeviceObject, ZFS_DEV_KERNEL);
Expand Down
6 changes: 3 additions & 3 deletions ZFSin/zfs/module/zfs/zfs_vnops_windows.c
Original file line number Diff line number Diff line change
Expand Up @@ -1549,8 +1549,8 @@ NTSTATUS pnp_query_id(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION

zmo = (mount_t *)DeviceObject->DeviceExtension;

Irp->IoStatus.Information = (void *)ExAllocatePoolWithTag(PagedPool, zmo->bus_name.Length + sizeof(UNICODE_NULL), '!OIZ');
if (Irp->IoStatus.Information == NULL) return STATUS_NO_MEMORY;
Irp->IoStatus.Information = (ULONG_PTR) ExAllocatePoolWithTag(PagedPool, zmo->bus_name.Length + sizeof(UNICODE_NULL), '!OIZ');
if (Irp->IoStatus.Information == (ULONG_PTR) NULL) return STATUS_NO_MEMORY;

RtlCopyMemory(Irp->IoStatus.Information, zmo->bus_name.Buffer, zmo->bus_name.Length);
dprintf("replying with '%.*S'\n", zmo->uuid.Length/sizeof(WCHAR), Irp->IoStatus.Information);
Expand Down Expand Up @@ -3877,7 +3877,7 @@ ioctlDispatcher(
dprintf("IRP_MJ_CREATE: zfsdev FileObject %p name '%wZ' length %u flags 0x%x\n",
IrpSp->FileObject, IrpSp->FileObject->FileName,
IrpSp->FileObject->FileName.Length, IrpSp->Flags);
Status = zfsdev_open(IrpSp->FileObject, Irp);
Status = zfsdev_open((dev_t)IrpSp->FileObject, Irp);
break;
case IRP_MJ_CLOSE:
Status = zfsdev_release((dev_t)IrpSp->FileObject, Irp);
Expand Down
Loading