sys: use main file security cache

This commit is contained in:
Bill Zissimopoulos 2016-10-05 17:38:16 -07:00
parent 43f333e8a6
commit 92dc2feecd
2 changed files with 12 additions and 0 deletions

View File

@ -1022,6 +1022,9 @@ BOOLEAN FspFileNodeTrySetSecurity(FSP_FILE_NODE *FileNode, PCVOID Buffer, ULONG
static inline static inline
ULONG FspFileNodeSecurityChangeNumber(FSP_FILE_NODE *FileNode) ULONG FspFileNodeSecurityChangeNumber(FSP_FILE_NODE *FileNode)
{ {
if (0 != FileNode->MainFileNode)
FileNode = FileNode->MainFileNode;
return FileNode->SecurityChangeNumber; return FileNode->SecurityChangeNumber;
} }
BOOLEAN FspFileNodeReferenceDirInfo(FSP_FILE_NODE *FileNode, PCVOID *PBuffer, PULONG PSize); BOOLEAN FspFileNodeReferenceDirInfo(FSP_FILE_NODE *FileNode, PCVOID *PBuffer, PULONG PSize);

View File

@ -945,6 +945,9 @@ BOOLEAN FspFileNodeReferenceSecurity(FSP_FILE_NODE *FileNode, PCVOID *PBuffer, P
{ {
PAGED_CODE(); PAGED_CODE();
if (0 != FileNode->MainFileNode)
FileNode = FileNode->MainFileNode;
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension =
FspFsvolDeviceExtension(FileNode->FsvolDeviceObject); FspFsvolDeviceExtension(FileNode->FsvolDeviceObject);
@ -956,6 +959,9 @@ VOID FspFileNodeSetSecurity(FSP_FILE_NODE *FileNode, PCVOID Buffer, ULONG Size)
{ {
PAGED_CODE(); PAGED_CODE();
if (0 != FileNode->MainFileNode)
FileNode = FileNode->MainFileNode;
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension =
FspFsvolDeviceExtension(FileNode->FsvolDeviceObject); FspFsvolDeviceExtension(FileNode->FsvolDeviceObject);
@ -970,6 +976,9 @@ BOOLEAN FspFileNodeTrySetSecurity(FSP_FILE_NODE *FileNode, PCVOID Buffer, ULONG
{ {
PAGED_CODE(); PAGED_CODE();
if (0 != FileNode->MainFileNode)
FileNode = FileNode->MainFileNode;
if (FileNode->SecurityChangeNumber != SecurityChangeNumber) if (FileNode->SecurityChangeNumber != SecurityChangeNumber)
return FALSE; return FALSE;