sys: fsctl: oplock fixes

This commit is contained in:
Bill Zissimopoulos
2016-11-20 15:27:24 -08:00
parent ce551d4e0d
commit 127d4cc4eb
4 changed files with 18 additions and 43 deletions

View File

@ -537,11 +537,10 @@ NTSTATUS FspCheckOplockEx(
PVOID Context,
POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
NTSTATUS FspOplockFsctrlF(
NTSTATUS FspOplockFsctrl(
POPLOCK Oplock,
PIRP Irp,
ULONG OpenCount,
BOOLEAN Create);
ULONG OpenCount);
#define FspNotifyUninitializeSync(NS)\
FsRtlNotifyUninitializeSync(NS)
#define FspNotifyCleanupAll(NS, NL)\
@ -554,10 +553,6 @@ NTSTATUS FspOplockFsctrlF(
FspNotifyFullChangeDirectory(NS, NL, FC, 0, 0, FALSE, 0, 0, 0, 0)
#define FspNotifyReportChange(NS, NL, FN, FO, NP, F, A)\
FspNotifyFullReportChange(NS, NL, (PSTRING)(FN), FO, 0, (PSTRING)(NP), F, A, 0)
#define FspOplockFsctrlCreate(OL, I, OC)\
FspOplockFsctrlF(OL, I, OC, TRUE)
#define FspOplockFsctrl(OL, I, OC)\
FspOplockFsctrlF(OL, I, OC, FALSE)
/* utility: synchronous work queue */
typedef struct
@ -1242,6 +1237,11 @@ typedef struct
PVOID PrepareContext;
} FSP_FILE_NODE_OPLOCK_CONTEXT;
static inline
NTSTATUS FspFileNodeOplockFsctl(FSP_FILE_NODE *FileNode, PIRP Irp, ULONG OpenCount)
{
return FspOplockFsctrl(FspFileNodeAddrOfOplock(FileNode), Irp, OpenCount);
}
static inline
BOOLEAN FspFileNodeOplockIsBatch(FSP_FILE_NODE *FileNode)
{
return FsRtlCurrentBatchOplock(FspFileNodeAddrOfOplock(FileNode));