mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 23:40:13 +00:00
vol AttachByName should mimic other volpkg errors
if later callers will deem a volume offline, note it at attach time. additionally, log the cause. Change-Id: I4870e8f3bfd8d7e69e448d3a445be81435407f0f Reviewed-on: http://gerrit.openafs.org/2448 Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
This commit is contained in:
parent
eb6914dbb3
commit
939382c5c1
@ -3326,6 +3326,27 @@ attach2(Error * ec, VolId volumeId, char *path, struct DiskPartition64 *partp,
|
|||||||
V_inUse(vp) = fileServer;
|
V_inUse(vp) = fileServer;
|
||||||
V_offlineMessage(vp)[0] = '\0';
|
V_offlineMessage(vp)[0] = '\0';
|
||||||
}
|
}
|
||||||
|
if (!V_inUse(vp)) {
|
||||||
|
*ec = VNOVOL;
|
||||||
|
/* mimic e.g. GetVolume errors */
|
||||||
|
if (!V_blessed(vp))
|
||||||
|
Log("Volume %lu offline: not blessed\n", afs_printable_uint32_lu(V_id(vp)));
|
||||||
|
else if (!V_inService(vp))
|
||||||
|
Log("Volume %lu offline: not in service\n", afs_printable_uint32_lu(V_id(vp)));
|
||||||
|
else {
|
||||||
|
Log("Volume %lu offline: needs salvage\n", afs_printable_uint32_lu(V_id(vp)));
|
||||||
|
*ec = VOFFLINE;
|
||||||
|
#ifdef AFS_DEMAND_ATTACH_FS
|
||||||
|
/* see if we can recover */
|
||||||
|
VRequestSalvage_r(ec, vp, SALVSYNC_NEEDED, VOL_SALVAGE_INVALIDATE_HEADER);
|
||||||
|
vp->nUsers = 0;
|
||||||
|
|
||||||
|
goto error;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
VPutVolume_r(vp);
|
||||||
|
vp = NULL;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef AFS_DEMAND_ATTACH_FS
|
#ifdef AFS_DEMAND_ATTACH_FS
|
||||||
if ((mode != V_PEEK) && (mode != V_SECRETLY))
|
if ((mode != V_PEEK) && (mode != V_SECRETLY))
|
||||||
|
Loading…
Reference in New Issue
Block a user