Windows: Permit deletion of reparse points

AFSSetDispositionInfo did not set the AFS_DIR_ENTRY_PENDING_DELETE
flag if the DirectoryCB type was mountpoint, symlink, dfslink or invalid.
This patchset permits the flag to be set so reparse point objects can be
deleted without using the AFS "symlink.exe remove" command.

Change-Id: I03e1cb7b08989950a4307e59073e5fb712d1a901
Reviewed-on: http://gerrit.openafs.org/9475
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
This commit is contained in:
Jeffrey Altman 2013-03-07 22:05:20 -05:00
parent 540a73dc18
commit 816834cc03

View File

@ -2197,6 +2197,20 @@ AFSSetDispositionInfo( IN PIRP Irp,
try_return( ntStatus = STATUS_CANNOT_DELETE);
}
}
else if( pFcb->Header.NodeTypeCode == AFS_SYMBOLIC_LINK_FCB ||
pFcb->Header.NodeTypeCode == AFS_MOUNT_POINT_FCB ||
pFcb->Header.NodeTypeCode == AFS_DFS_LINK_FCB ||
pFcb->Header.NodeTypeCode == AFS_INVALID_FCB)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetDispositionInfo Setting PENDING_DELETE on DirEntry %p Name %wZ\n",
DirectoryCB,
&DirectoryCB->NameInformation.FileName);
SetFlag( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_PENDING_DELETE);
}
}
else
{