Windows: Add Cell name to AFSProcessRequest parameters
authorJeffrey Altman <jaltman@your-file-system.com>
Wed, 13 Feb 2013 19:04:28 +0000 (14:04 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Thu, 14 Feb 2013 14:47:25 +0000 (06:47 -0800)
Knowing the cell name for the request can be useful to the file
system driver which otherwise does not have access to a conversion
from FileID.CellID to Cell name.

Change-Id: Ia10bae0d9c8bc7824a400ff30268d7ac0b9b2935
Reviewed-on: http://gerrit.openafs.org/9107
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

src/WINNT/afsrdr/common/AFSRedirCommonStructs.h
src/WINNT/afsrdr/kernel/fs/AFSCommSupport.cpp
src/WINNT/afsrdr/kernel/fs/Include/AFSCommon.h
src/WINNT/afsrdr/kernel/lib/AFSCleanup.cpp
src/WINNT/afsrdr/kernel/lib/AFSClose.cpp
src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp
src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp
src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp
src/WINNT/afsrdr/kernel/lib/AFSLockControl.cpp
src/WINNT/afsrdr/kernel/lib/AFSRead.cpp
src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp

index a01c065..e5a06e6 100644 (file)
@@ -746,6 +746,8 @@ NTSTATUS
                        IN GUID *AuthGroup,
                        IN PUNICODE_STRING FileName,
                        IN AFSFileID *FileId,
+                       IN WCHAR * Cell,
+                       IN ULONG   CellLength,
                        IN void  *Data,
                        IN ULONG DataLength,
                        IN OUT void *ResultBuffer,
index d0956b1..6852b16 100644 (file)
@@ -55,6 +55,8 @@ AFSReleaseFid( IN AFSFileID *FileId)
                                       NULL,
                                       0,
                                       NULL,
+                                      0,
+                                      NULL,
                                       NULL);
     }
 
@@ -67,6 +69,8 @@ AFSProcessRequest( IN ULONG RequestType,
                    IN GUID *AuthGroup,
                    IN PUNICODE_STRING FileName,
                    IN AFSFileID *FileId,
+                   IN WCHAR *Cell,
+                   IN ULONG  CellLength,
                    IN void  *Data,
                    IN ULONG DataLength,
                    IN OUT void *ResultBuffer,
index 3f6b920..ca79a13 100644 (file)
@@ -162,6 +162,8 @@ AFSProcessRequest( IN ULONG RequestType,
                    IN GUID *AuthGroup,
                    IN PUNICODE_STRING FileName,
                    IN AFSFileID *FileId,
+                   IN WCHAR * Cell,
+                   IN ULONG   CellLength,
                    IN void  *Data,
                    IN ULONG DataLength,
                    IN OUT void *ResultBuffer,
index ff2e228..df613ca 100644 (file)
@@ -458,6 +458,8 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                                   &pCcb->AuthGroup,
                                                   &pCcb->DirectoryCB->NameInformation.FileName,
                                                   &pObjectInfo->FileId,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                                   &stFileCleanup,
                                                   sizeof( AFSFileCleanupCB),
                                                   pResultCB,
@@ -694,6 +696,8 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                                   &pCcb->AuthGroup,
                                                   &pCcb->DirectoryCB->NameInformation.FileName,
                                                   &pObjectInfo->FileId,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                                   &stFileCleanup,
                                                   sizeof( AFSFileCleanupCB),
                                                   pResultCB,
@@ -897,6 +901,8 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                                   &pCcb->AuthGroup,
                                                   &pCcb->DirectoryCB->NameInformation.FileName,
                                                   &pObjectInfo->FileId,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                                   &stFileCleanup,
                                                   sizeof( AFSFileCleanupCB),
                                                   pResultCB,
@@ -1030,6 +1036,8 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                                   &pCcb->AuthGroup,
                                                   &pCcb->DirectoryCB->NameInformation.FileName,
                                                   &pObjectInfo->FileId,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                                   &stFileCleanup,
                                                   sizeof( AFSFileCleanupCB),
                                                   pResultCB,
@@ -1211,6 +1219,8 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                                   &pCcb->AuthGroup,
                                                   &pCcb->DirectoryCB->NameInformation.FileName,
                                                   &pObjectInfo->FileId,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                                   &stFileCleanup,
                                                   sizeof( AFSFileCleanupCB),
                                                   pResultCB,
@@ -1344,6 +1354,8 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                                   &pCcb->AuthGroup,
                                                   &pCcb->DirectoryCB->NameInformation.FileName,
                                                   &pObjectInfo->FileId,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                                  pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                                   &stFileCleanup,
                                                   sizeof( AFSFileCleanupCB),
                                                   pResultCB,
index 7d90225..2cad934 100644 (file)
@@ -140,6 +140,8 @@ AFSClose( IN PDEVICE_OBJECT LibDeviceObject,
                                    &pCcb->AuthGroup,
                                    NULL,
                                    &stParentFileId,
+                                   NULL,
+                                   0,
                                    (void *)&stPIOCtlClose,
                                    sizeof( AFSPIOCtlOpenCloseRequestCB),
                                    NULL,
@@ -541,6 +543,8 @@ AFSClose( IN PDEVICE_OBJECT LibDeviceObject,
                                    &pFcb->AuthGroup,
                                    &pDirCB->NameInformation.FileName,
                                    NULL,
+                                   NULL,
+                                   0,
                                    (void *)&stPipeClose,
                                    sizeof( AFSPipeOpenCloseRequestCB),
                                    NULL,
index e7d44f9..705c2df 100644 (file)
@@ -148,6 +148,8 @@ AFSEnumerateDirectory( IN GUID *AuthGroup,
                                               AuthGroup,
                                               NULL,
                                               &ObjectInfoCB->FileId,
+                                              ObjectInfoCB->VolumeCB->VolumeInformation.Cell,
+                                              ObjectInfoCB->VolumeCB->VolumeInformation.CellLength,
                                               (void *)pDirQueryCB,
                                               sizeof( AFSDirQueryCB),
                                               pBuffer,
@@ -728,6 +730,8 @@ AFSEnumerateDirectoryNoResponse( IN GUID *AuthGroup,
                                       AuthGroup,
                                       NULL,
                                       FileId,
+                                      NULL,
+                                      0,
                                       (void *)&stDirQueryCB,
                                       sizeof( AFSDirQueryCB),
                                       NULL,
@@ -862,6 +866,8 @@ AFSVerifyDirectoryContent( IN AFSObjectInfoCB *ObjectInfoCB,
                                               AuthGroup,
                                               NULL,
                                               &ObjectInfoCB->FileId,
+                                              ObjectInfoCB->VolumeCB->VolumeInformation.Cell,
+                                              ObjectInfoCB->VolumeCB->VolumeInformation.CellLength,
                                               (void *)pDirQueryCB,
                                               sizeof( AFSDirQueryCB),
                                               pBuffer,
@@ -1599,6 +1605,8 @@ AFSNotifyFileCreate( IN GUID            *AuthGroup,
                                       AuthGroup,
                                       FileName,
                                       NULL,
+                                      NULL,
+                                      0,
                                       &stCreateCB,
                                       sizeof( AFSFileCreateCB),
                                       pResultCB,
@@ -1937,6 +1945,8 @@ AFSUpdateFileInformation( IN AFSFileID *ParentFid,
                                       AuthGroup,
                                       NULL,
                                       &ObjectInfo->FileId,
+                                      ObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                      ObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                       &stUpdateCB,
                                       sizeof( AFSFileUpdateCB),
                                       pUpdateResultCB,
@@ -2021,6 +2031,8 @@ AFSNotifyDelete( IN AFSDirectoryCB *DirectoryCB,
                                       AuthGroup,
                                       &DirectoryCB->NameInformation.FileName,
                                       &pObjectInfo->FileId,
+                                      pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                      pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                       &stDelete,
                                       sizeof( AFSFileDeleteCB),
                                       &stDeleteResult,
@@ -2176,6 +2188,8 @@ AFSNotifyHardLink( IN AFSObjectInfoCB *ObjectInfo,
                                       AuthGroup,
                                       &SourceDirectoryCB->NameInformation.FileName,
                                       &ObjectInfo->FileId,
+                                      ObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                      ObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                       pHardLinkCB,
                                       sizeof( AFSFileHardLinkCB) + TargetName->Length,
                                       pResultCB,
@@ -2546,6 +2560,8 @@ AFSNotifyRename( IN AFSObjectInfoCB *ObjectInfo,
                                       AuthGroup,
                                       &DirectoryCB->NameInformation.FileName,
                                       &ObjectInfo->FileId,
+                                      ObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                      ObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                       pRenameCB,
                                       sizeof( AFSFileRenameCB) + TargetName->Length,
                                       pRenameResultCB,
@@ -2753,6 +2769,8 @@ AFSEvaluateTargetByID( IN AFSObjectInfoCB *ObjectInfo,
                                       AuthGroup,
                                       NULL,
                                       &ObjectInfo->FileId,
+                                      ObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                      ObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                       &stTargetID,
                                       sizeof( AFSEvalTargetCB),
                                       pEvalResultCB,
@@ -2959,6 +2977,8 @@ AFSEvaluateTargetByName( IN GUID *AuthGroup,
                                       AuthGroup,
                                       SourceName,
                                       NULL,
+                                      ParentObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                      ParentObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                       &stTargetID,
                                       sizeof( AFSEvalTargetCB),
                                       pEvalResultCB,
@@ -3068,6 +3088,8 @@ AFSRetrieveVolumeInformation( IN GUID *AuthGroup,
                                       FileID,
                                       NULL,
                                       0,
+                                      NULL,
+                                      0,
                                       VolumeInformation,
                                       &ulResultLen);
 
@@ -3106,6 +3128,8 @@ AFSRetrieveVolumeSizeInformation( IN GUID *AuthGroup,
                                       FileID,
                                       NULL,
                                       0,
+                                      NULL,
+                                      0,
                                       VolumeSizeInformation,
                                       &ulResultLen);
 
@@ -3200,6 +3224,8 @@ AFSNotifyPipeTransceive( IN AFSCcb *Ccb,
                                       &Ccb->AuthGroup,
                                       &Ccb->DirectoryCB->NameInformation.FileName,
                                       NULL,
+                                      NULL,
+                                      0,
                                       pIoRequest,
                                       sizeof( AFSPipeIORequestCB) + InputLength,
                                       pOutputSystemBuffer,
@@ -3300,6 +3326,8 @@ AFSNotifySetPipeInfo( IN AFSCcb *Ccb,
                                       &Ccb->AuthGroup,
                                       &Ccb->DirectoryCB->NameInformation.FileName,
                                       NULL,
+                                      NULL,
+                                      0,
                                       pInfoRequest,
                                       sizeof( AFSPipeInfoRequestCB) + InputLength,
                                       NULL,
@@ -3366,6 +3394,8 @@ AFSNotifyQueryPipeInfo( IN AFSCcb *Ccb,
                                       &Ccb->AuthGroup,
                                       &Ccb->DirectoryCB->NameInformation.FileName,
                                       NULL,
+                                      NULL,
+                                      0,
                                       &stInfoRequest,
                                       sizeof( AFSPipeInfoRequestCB),
                                       DataBuffer,
@@ -3410,6 +3440,8 @@ AFSReleaseFid( IN AFSFileID *FileId)
                                       NULL,
                                       0,
                                       NULL,
+                                      0,
+                                      NULL,
                                       NULL);
     }
 
index 299247d..b93f554 100644 (file)
@@ -1408,6 +1408,8 @@ AFSOpenRoot( IN PIRP Irp,
                                       AuthGroup,
                                       NULL,
                                       &VolumeCB->ObjectInformation.FileId,
+                                      VolumeCB->VolumeInformation.Cell,
+                                      VolumeCB->VolumeInformation.CellLength,
                                       (void *)&stOpenCB,
                                       sizeof( AFSFileOpenCB),
                                       (void *)&stOpenResultCB,
@@ -2748,6 +2750,8 @@ AFSProcessOpen( IN PIRP Irp,
                                       AuthGroup,
                                       &DirectoryCB->NameInformation.FileName,
                                       &pObjectInfo->FileId,
+                                      pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                      pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                       (void *)&stOpenCB,
                                       sizeof( AFSFileOpenCB),
                                       (void *)&stOpenResultCB,
@@ -2941,6 +2945,8 @@ try_exit:
                                    AuthGroup,
                                    &DirectoryCB->NameInformation.FileName,
                                    &pObjectInfo->FileId,
+                                   pObjectInfo->VolumeCB->VolumeInformation.Cell,
+                                   pObjectInfo->VolumeCB->VolumeInformation.CellLength,
                                    (void *)&stReleaseFileAccess,
                                    sizeof( AFSFileAccessReleaseCB),
                                    NULL,
@@ -3563,6 +3569,8 @@ AFSOpenIOCtlFcb( IN PIRP Irp,
                                       AuthGroup,
                                       NULL,
                                       &stFileID,
+                                      NULL,
+                                      0,
                                       (void *)&stPIOCtlOpen,
                                       sizeof( AFSPIOCtlOpenCloseRequestCB),
                                       NULL,
@@ -3804,6 +3812,8 @@ AFSOpenSpecialShareFcb( IN PIRP Irp,
                                       AuthGroup,
                                       &DirectoryCB->NameInformation.FileName,
                                       NULL,
+                                      NULL,
+                                      0,
                                       (void *)&stPipeOpen,
                                       sizeof( AFSPipeOpenCloseRequestCB),
                                       NULL,
index 0b7cfc6..4157513 100644 (file)
@@ -321,6 +321,8 @@ AFSTearDownFcbExtents( IN AFSFcb *Fcb,
                                               pAuthGroup,
                                               NULL,
                                               &Fcb->ObjectInformation->FileId,
+                                              Fcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                              Fcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                               pRelease,
                                               sz,
                                               NULL,
@@ -963,6 +965,8 @@ AFSRequestExtentsAsync( IN AFSFcb *Fcb,
                                           &Ccb->AuthGroup,
                                           NULL,
                                           &Fcb->ObjectInformation->FileId,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                           &request,
                                           sizeof( AFSRequestExtentsCB ),
                                           NULL,
@@ -989,6 +993,8 @@ AFSRequestExtentsAsync( IN AFSFcb *Fcb,
                                                   &stAuthGroup,
                                                   NULL,
                                                   &Fcb->ObjectInformation->FileId,
+                                                  Fcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                                  Fcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                                   &request,
                                                   sizeof( AFSRequestExtentsCB ),
                                                   NULL,
@@ -2956,6 +2962,8 @@ AFSFlushExtents( IN AFSFcb *Fcb,
                                           pAuthGroup,
                                           NULL,
                                           &Fcb->ObjectInformation->FileId,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                           pRelease,
                                           sz,
                                           NULL,
@@ -3241,6 +3249,8 @@ AFSReleaseExtentsWithFlush( IN AFSFcb *Fcb,
                                           pAuthGroup,
                                           NULL,
                                           &Fcb->ObjectInformation->FileId,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                           pRelease,
                                           sz,
                                           NULL,
@@ -3472,6 +3482,8 @@ AFSReleaseCleanExtents( IN AFSFcb *Fcb,
                                           pAuthGroup,
                                           NULL,
                                           &Fcb->ObjectInformation->FileId,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                          Fcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                           pRelease,
                                           sz,
                                           NULL,
index 7057fcf..ed9de55 100644 (file)
@@ -145,6 +145,8 @@ AFSLockControl( IN PDEVICE_OBJECT LibDeviceObject,
                                               &pCcb->AuthGroup,
                                               &pCcb->DirectoryCB->NameInformation.FileName,
                                               &pFcb->ObjectInformation->FileId,
+                                              pFcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                              pFcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                               &stLockRequestCB,
                                               sizeof( AFSByteRangeLockRequestCB),
                                               &stLockResultCB,
@@ -214,6 +216,8 @@ AFSLockControl( IN PDEVICE_OBJECT LibDeviceObject,
                                               &pCcb->AuthGroup,
                                               &pCcb->DirectoryCB->NameInformation.FileName,
                                               &pFcb->ObjectInformation->FileId,
+                                              pFcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                              pFcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                               (void *)&stUnlockRequestCB,
                                               sizeof( AFSByteRangeUnlockRequestCB),
                                               NULL,
@@ -286,6 +290,8 @@ AFSLockControl( IN PDEVICE_OBJECT LibDeviceObject,
                                               &pCcb->AuthGroup,
                                               &pCcb->DirectoryCB->NameInformation.FileName,
                                               &pFcb->ObjectInformation->FileId,
+                                              pFcb->ObjectInformation->VolumeCB->VolumeInformation.Cell,
+                                              pFcb->ObjectInformation->VolumeCB->VolumeInformation.CellLength,
                                               (void *)&stUnlockRequestCB,
                                               sizeof( AFSByteRangeUnlockRequestCB),
                                               (void *)&stUnlockResultCB,
index 7d2e5b4..f83b5fa 100644 (file)
@@ -756,6 +756,7 @@ try_exit:
     }
     return ntStatus;
 }
+
 //
 // Function: AFSDispatch
 //
@@ -1422,6 +1423,8 @@ AFSIOCtlRead( IN PDEVICE_OBJECT DeviceObject,
                                       &pCcb->AuthGroup,
                                       NULL,
                                       &stParentFID,
+                                      NULL,
+                                      0,
                                       (void *)&stIORequestCB,
                                       sizeof( AFSPIOCtlIORequestCB),
                                       &stIOResultCB,
@@ -1536,6 +1539,8 @@ AFSShareRead( IN PDEVICE_OBJECT DeviceObject,
                                       &pCcb->AuthGroup,
                                       &pCcb->DirectoryCB->NameInformation.FileName,
                                       NULL,
+                                      NULL,
+                                      0,
                                       (void *)&stIoRequest,
                                       sizeof( AFSPipeIORequestCB),
                                       pBuffer,
index d73a06f..a868630 100644 (file)
@@ -822,6 +822,8 @@ AFSIOCtlWrite( IN PDEVICE_OBJECT DeviceObject,
                                       &pCcb->AuthGroup,
                                       NULL,
                                       &stParentFID,
+                                      NULL,
+                                      0,
                                       (void *)&stIORequestCB,
                                       sizeof( AFSPIOCtlIORequestCB),
                                       &stIOResultCB,
@@ -1885,6 +1887,8 @@ AFSShareWrite( IN PDEVICE_OBJECT DeviceObject,
                                       &pCcb->AuthGroup,
                                       &pCcb->DirectoryCB->NameInformation.FileName,
                                       NULL,
+                                      NULL,
+                                      0,
                                       pIoRequest,
                                       sizeof( AFSPipeIORequestCB) +
                                                 pIrpSp->Parameters.Write.Length,