From: Jeffrey Altman Date: Sun, 31 Mar 2013 00:16:48 +0000 (-0400) Subject: Windows: FileSystemAttributes = FILE_READ_ONLY_VOLUME X-Git-Tag: upstream/1.8.0_pre1^2~1251 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=5c2a770e0ed02b2cae658a7cbf30e91105194a57;p=packages%2Fo%2Fopenafs.git Windows: FileSystemAttributes = FILE_READ_ONLY_VOLUME Instead of testing for Characteristics = FILE_READ_ONLY_DEVICE which applies to the entire device, only return media protected errors if the volume FileSystemAttributes include FILE_READ_ONLY_VOLUME. Change-Id: Ice716083c7f0ecb9e80d0ca9e3e143249293d28e Reviewed-on: http://gerrit.openafs.org/9699 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp index c306a73b2..ea0d7bc2c 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp @@ -1706,7 +1706,7 @@ AFSProcessCreate( IN PIRP Irp, FullFileName, ulAttributes)); - if( BooleanFlagOn( VolumeCB->VolumeInformation.Characteristics, FILE_READ_ONLY_DEVICE)) + if( BooleanFlagOn( VolumeCB->VolumeInformation.FileSystemAttributes, FILE_READ_ONLY_VOLUME)) { AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING, @@ -3015,7 +3015,7 @@ AFSProcessOverwriteSupersede( IN PDEVICE_OBJECT DeviceObject, ulCreateDisposition = (pIrpSp->Parameters.Create.Options >> 24) & 0x000000ff; - if( BooleanFlagOn( VolumeCB->VolumeInformation.Characteristics, FILE_READ_ONLY_DEVICE)) + if( BooleanFlagOn( VolumeCB->VolumeInformation.FileSystemAttributes, FILE_READ_ONLY_VOLUME)) { AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING, diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp index 55a1a3172..39103e7c7 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp @@ -583,7 +583,7 @@ AFSSetFileInfo( IN PDEVICE_OBJECT LibDeviceObject, try_return( ntStatus); } - if( BooleanFlagOn( pFcb->ObjectInformation->VolumeCB->VolumeInformation.Characteristics, FILE_READ_ONLY_DEVICE)) + if( BooleanFlagOn( pFcb->ObjectInformation->VolumeCB->VolumeInformation.FileSystemAttributes, FILE_READ_ONLY_VOLUME)) { AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING, diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp index f8f8c81ec..97b55a172 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp @@ -247,7 +247,7 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject, } if( pFcb->ObjectInformation->VolumeCB != NULL && - BooleanFlagOn( pFcb->ObjectInformation->VolumeCB->VolumeInformation.Characteristics, FILE_READ_ONLY_DEVICE)) + BooleanFlagOn( pFcb->ObjectInformation->VolumeCB->VolumeInformation.FileSystemAttributes, FILE_READ_ONLY_VOLUME)) { AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,