}
//
- // We have our root node shared
+ // We have a reference on the root volume
//
bReleaseVolume = TRUE;
// fail with collision
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonCreate Object name collision on create of %wZ Status %08lX\n",
- &pDirectoryCB->NameInformation.FileName,
- ntStatus);
-
if( pDirectoryCB != NULL)
{
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSCommonCreate Object name collision on create of %wZ Status %08lX\n",
+ &pDirectoryCB->NameInformation.FileName,
+ ntStatus);
+
InterlockedDecrement( &pDirectoryCB->OpenReferenceCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
else
{
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSCommonCreate Object name collision on create Status %08lX\n",
+ ntStatus);
+
InterlockedDecrement( &pParentDirectoryCB->OpenReferenceCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
"AFSCommonCreate Decrement count on Volume %08lX Cnt %d\n",
pVolumeCB,
pVolumeCB->VolumeReferenceCount);
-
- AFSReleaseResource( pVolumeCB->VolumeLock);
}
//
"AFSProcessCreate Request failed due to read only volume %wZ\n",
FullFileName);
- try_return( ntStatus = STATUS_ACCESS_DENIED);
+ try_return( ntStatus = STATUS_MEDIA_WRITE_PROTECTED);
}
pParentObjectInfo = ParentDirCB->ObjectInformation;
AFSFsRtlNotifyFullReportChange( pParentObjectInfo,
*Ccb,
- (ULONG)FILE_NOTIFY_CHANGE_FILE_NAME,
- (ULONG)FILE_ACTION_ADDED);
+ (ULONG)FILE_NOTIFY_CHANGE_FILE_NAME,
+ (ULONG)FILE_ACTION_ADDED);
(*Fcb)->NPFcb->Specific.File.ExtentsRequestStatus = STATUS_SUCCESS;
}
AFSFsRtlNotifyFullReportChange( pParentObjectInfo,
*Ccb,
- (ULONG)FILE_NOTIFY_CHANGE_DIR_NAME,
- (ULONG)FILE_ACTION_ADDED);
+ (ULONG)FILE_NOTIFY_CHANGE_DIR_NAME,
+ (ULONG)FILE_ACTION_ADDED);
}
else if( (*Fcb)->Header.NodeTypeCode == AFS_MOUNT_POINT_FCB ||
(*Fcb)->Header.NodeTypeCode == AFS_SYMBOLIC_LINK_FCB ||
- (*Fcb)->Header.NodeTypeCode == AFS_DFS_LINK_FCB)
+ (*Fcb)->Header.NodeTypeCode == AFS_DFS_LINK_FCB ||
+ (*Fcb)->Header.NodeTypeCode == AFS_INVALID_FCB)
{
//
AFSFsRtlNotifyFullReportChange( pParentObjectInfo,
*Ccb,
- (ULONG)FILE_NOTIFY_CHANGE_DIR_NAME,
- (ULONG)FILE_ACTION_ADDED);
+ (ULONG)FILE_NOTIFY_CHANGE_DIR_NAME,
+ (ULONG)FILE_ACTION_ADDED);
}
//
}
else if( pObjectInfo->Fcb->Header.NodeTypeCode == AFS_MOUNT_POINT_FCB ||
pObjectInfo->Fcb->Header.NodeTypeCode == AFS_SYMBOLIC_LINK_FCB ||
- pObjectInfo->Fcb->Header.NodeTypeCode == AFS_DFS_LINK_FCB)
+ pObjectInfo->Fcb->Header.NodeTypeCode == AFS_DFS_LINK_FCB ||
+ pObjectInfo->Fcb->Header.NodeTypeCode == AFS_INVALID_FCB)
{
}
Irp,
&DirectoryCB->NameInformation.FileName);
- try_return( ntStatus = STATUS_ACCESS_DENIED);
+ try_return( ntStatus = STATUS_MEDIA_WRITE_PROTECTED);
}
pParentObjectInfo = ParentDirCB->ObjectInformation;