Don't check the share access for directories.

svn path=/trunk/; revision=17910
This commit is contained in:
Hartmut Birr 2005-09-18 13:10:43 +00:00
parent 065786c3b7
commit 0cfadced6f
2 changed files with 8 additions and 3 deletions

View file

@ -75,7 +75,10 @@ VfatCleanupFile(PVFAT_IRP_CONTEXT IrpContext)
CcUninitializeCacheMap (FileObject, NULL, NULL); CcUninitializeCacheMap (FileObject, NULL, NULL);
#endif #endif
pFcb->OpenHandleCount--; pFcb->OpenHandleCount--;
IoRemoveShareAccess(FileObject, &pFcb->FCBShareAccess); if (!(*pFcb->Attributes & FILE_ATTRIBUTE_DIRECTORY))
{
IoRemoveShareAccess(FileObject, &pFcb->FCBShareAccess);
}
} }
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }

View file

@ -612,7 +612,8 @@ VfatCreateFile (PDEVICE_OBJECT DeviceObject, PIRP Irp)
pFcb = FileObject->FsContext; pFcb = FileObject->FsContext;
if (pFcb->OpenHandleCount != 0) if (pFcb->OpenHandleCount != 0 &&
!(*pFcb->Attributes & FILE_ATTRIBUTE_DIRECTORY))
{ {
Status = IoCheckShareAccess(Stack->Parameters.Create.SecurityContext->DesiredAccess, Status = IoCheckShareAccess(Stack->Parameters.Create.SecurityContext->DesiredAccess,
Stack->Parameters.Create.ShareAccess, Stack->Parameters.Create.ShareAccess,
@ -708,7 +709,8 @@ VfatCreateFile (PDEVICE_OBJECT DeviceObject, PIRP Irp)
} }
} }
if (pFcb->OpenHandleCount == 0) if (pFcb->OpenHandleCount == 0 &&
!(*pFcb->Attributes & FILE_ATTRIBUTE_DIRECTORY))
{ {
IoSetShareAccess(Stack->Parameters.Create.SecurityContext->DesiredAccess, IoSetShareAccess(Stack->Parameters.Create.SecurityContext->DesiredAccess,
Stack->Parameters.Create.ShareAccess, Stack->Parameters.Create.ShareAccess,