mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 13:38:01 +00:00
DAFS: Do not transition to ERROR on trivial errors
attach2 can result in many different errors; some indicate that the volume is in an inconsistent state, but many others just indicate that the volume cannot be attached for benign reasons (such as VNOVOL if the volume doesn't exist, or VOFFLINE if the volume is being used by a volume utility). Currently, for DAFS, attach2 transitions the relevant volume to the VOL_STATE_ERROR state for almost all errors encountered, even the benign ones. Instead, skip the error state transition for error handling paths that do not reflect a "broken" volume. Reviewed-on: http://gerrit.openafs.org/6164 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Derrick Brashear <shadow@dementix.org> (cherry picked from commit 5fc2365f5dff7f193781093ecb886b4c7391d5a3) Change-Id: Ia3d732781c98fcda4db7b41cd744db860781594f Reviewed-on: http://gerrit.openafs.org/6320 Reviewed-by: Derrick Brashear <shadow@dementix.org> Tested-by: Derrick Brashear <shadow@dementix.org>
This commit is contained in:
parent
8b75b8c44c
commit
012e9e26b8
@ -3116,7 +3116,8 @@ attach2(Error * ec, VolId volumeId, char *path, struct DiskPartition64 *partp,
|
||||
if (*ec == VNOVOL) {
|
||||
/* if the volume doesn't exist, skip straight to 'error' so we don't
|
||||
* request a salvage */
|
||||
goto unlocked_error;
|
||||
VOL_LOCK;
|
||||
goto error_notbroken;
|
||||
}
|
||||
|
||||
if (!*ec) {
|
||||
@ -3210,7 +3211,8 @@ attach2(Error * ec, VolId volumeId, char *path, struct DiskPartition64 *partp,
|
||||
goto locked_error;
|
||||
} else if (*ec) {
|
||||
/* volume operation in progress */
|
||||
goto unlocked_error;
|
||||
VOL_LOCK;
|
||||
goto error_notbroken;
|
||||
}
|
||||
#else /* AFS_DEMAND_ATTACH_FS */
|
||||
if (*ec) {
|
||||
@ -3409,7 +3411,10 @@ attach2(Error * ec, VolId volumeId, char *path, struct DiskPartition64 *partp,
|
||||
|
||||
return vp;
|
||||
|
||||
#ifndef AFS_DEMAND_ATTACH_FS
|
||||
unlocked_error:
|
||||
#endif
|
||||
|
||||
VOL_LOCK;
|
||||
locked_error:
|
||||
#ifdef AFS_DEMAND_ATTACH_FS
|
||||
@ -3422,6 +3427,7 @@ locked_error:
|
||||
VReleaseVolumeHandles_r(vp);
|
||||
}
|
||||
|
||||
error_notbroken:
|
||||
#ifdef AFS_DEMAND_ATTACH_FS
|
||||
VCheckSalvage(vp);
|
||||
if (forcefree) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user