From: Jeffrey Altman Date: Fri, 6 Jul 2012 20:02:38 +0000 (-0400) Subject: Windows: add cm_IsVolumeReplicated() X-Git-Tag: upstream/1.8.0_pre1^2~2232 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=2dbe1316a17716e57013cf41e7b19ec898b94cbf;p=packages%2Fo%2Fopenafs.git Windows: add cm_IsVolumeReplicated() Given a file id indicates whether the volume it is located on is replicated or not. Change-Id: Icae0a387fc26e2a76b4b6f87fdb5c330da31a96b Reviewed-on: http://gerrit.openafs.org/7758 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_volume.c b/src/WINNT/afsd/cm_volume.c index 245f4c2f1..66692a4f3 100644 --- a/src/WINNT/afsd/cm_volume.c +++ b/src/WINNT/afsd/cm_volume.c @@ -1973,3 +1973,20 @@ cm_ChecksumVolumeServerList(struct cm_fid *fidp, cm_user_t *userp, cm_req_t *req } return cksum; } + +afs_int32 +cm_IsVolumeReplicated(cm_fid_t *fidp) +{ + afs_int32 replicated = 0; + cm_volume_t *volp; + cm_vol_state_t * volstatep; + + volp = cm_GetVolumeByFID(fidp); + if (volp) { + volstatep = cm_VolumeStateByID(volp, fidp->volume); + replicated = (volstatep->flags & CM_VOL_STATE_FLAG_REPLICATED); + cm_PutVolume(volp); + } + + return replicated; +} diff --git a/src/WINNT/afsd/cm_volume.h b/src/WINNT/afsd/cm_volume.h index d17103be0..8f3072eb1 100644 --- a/src/WINNT/afsd/cm_volume.h +++ b/src/WINNT/afsd/cm_volume.h @@ -166,5 +166,7 @@ extern afs_int32 cm_VolumeType(cm_volume_t *volp, afs_uint32 id); extern long cm_UpdateVolumeLocation(struct cm_cell *cellp, cm_user_t *userp, cm_req_t *reqp, cm_volume_t *volp); +extern afs_int32 cm_IsVolumeReplicated(cm_fid_t *fidp); + extern osi_rwlock_t cm_volumeLock; #endif /* OPENAFS_WINNT_AFSD_CM_VOLUME_H */