osi_rwlock_t rw;
afs_uint32 flags; /* by rw */
afs_int32 refCount; /* by Interlocked operations */
+ struct cm_server *cbServerpRO; /* server granting RO callback; by cm_scacheLock */
time_t cbExpiresRO; /* latest RO expiration time; by cm_scacheLock */
} cm_volume_t;
#define CM_VOLUMEFLAG_IN_HASH 2
#define CM_VOLUMEFLAG_IN_LRU_QUEUE 4
#define CM_VOLUMEFLAG_UPDATING_VL 8
-
+#define CM_VOLUMEFLAG_DFS_VOLUME 16
typedef struct cm_volumeRef {
struct cm_volumeRef * next;
#define CM_GETVOL_FLAG_CREATE 1
#define CM_GETVOL_FLAG_NO_LRU_UPDATE 2
#define CM_GETVOL_FLAG_NO_RESET 4
+#define CM_GETVOL_FLAG_IGNORE_LINKED_CELL 8
/* hash define. Must not include the cell, since the callback revocation code
* doesn't necessarily know the cell in the case of a multihomed server
extern long cm_GetROVolumeID(cm_volume_t *volp);
-extern void cm_ForceUpdateVolume(struct cm_fid *fidp, cm_user_t *userp,
+extern long cm_ForceUpdateVolume(struct cm_fid *fidp, cm_user_t *userp,
cm_req_t *reqp);
-extern cm_serverRef_t **cm_GetVolServers(cm_volume_t *volp, afs_uint32 volume);
+extern cm_serverRef_t **cm_GetVolServers(cm_volume_t *volp, afs_uint32 volume,
+ cm_user_t *userp, cm_req_t *reqp);
extern void cm_ChangeRankVolume(cm_server_t *tsp);
extern long cm_CheckOfflineVolume(cm_volume_t *volp, afs_uint32 volID);
+extern void cm_CheckOfflineVolumeState(cm_volume_t *volp, cm_vol_state_t *statep,
+ afs_uint32 volID, afs_uint32 *onlinep,
+ afs_uint32 *volumeUpdatedp);
+
extern void cm_UpdateVolumeStatus(cm_volume_t *volp, afs_uint32 volID);
-extern void cm_VolumeStatusNotification(cm_volume_t * volp, afs_uint32 volID, enum volstatus old, enum volstatus new);
+extern void cm_VolumeStatusNotification(cm_volume_t * volp, afs_uint32 volID, enum volstatus oldState, enum volstatus newState);
extern enum volstatus cm_GetVolumeStatus(cm_volume_t *volp, afs_uint32 volID);
extern cm_vol_state_t * cm_VolumeStateByName(cm_volume_t *volp, char *volname);
+extern afs_int32 cm_VolumeType(cm_volume_t *volp, afs_uint32 id);
+
extern osi_rwlock_t cm_volumeLock;
#endif /* __CM_VOLUME_H_ENV__ */