mirror of
https://git.openafs.org/openafs.git
synced 2025-01-22 08:50:17 +00:00
vol-fssync-ack-before-breaking-callbacks-20020612
given that we don't bother to do anything to return value, we can ack the fssync op earlier and not tie up the volserver unnecessarily found due to comments from brent.johnson@jpl.nasa.gov
This commit is contained in:
parent
6260cbecd0
commit
d7e3e249cb
@ -321,7 +321,7 @@ static void FSYNC_com(fd)
|
||||
int fd;
|
||||
{
|
||||
byte rc = FSYNC_OK;
|
||||
int n, i;
|
||||
int n, i, ack = 1;
|
||||
Error error;
|
||||
struct command command;
|
||||
int leaveonline;
|
||||
@ -507,6 +507,12 @@ defect #2080 for details.
|
||||
vp->specialStatus = VMOVED;
|
||||
VPutVolume_r(vp);
|
||||
}
|
||||
#ifdef AFS_NT40_ENV
|
||||
send(fd, &rc, 1, 0);
|
||||
#else
|
||||
write(fd, &rc, 1);
|
||||
#endif
|
||||
ack = 0;
|
||||
if (V_BreakVolumeCallbacks) {
|
||||
Log("fssync: volume %u moved to %x; breaking all call backs\n",
|
||||
command.volume, command.reason);
|
||||
@ -519,6 +525,12 @@ defect #2080 for details.
|
||||
break;
|
||||
case FSYNC_RESTOREVOLUME:
|
||||
/* if the volume is being restored, break all callbacks on it*/
|
||||
#ifdef AFS_NT40_ENV
|
||||
send(fd, &rc, 1, 0);
|
||||
#else
|
||||
write(fd, &rc, 1);
|
||||
#endif
|
||||
ack = 0;
|
||||
if (V_BreakVolumeCallbacks) {
|
||||
VOL_UNLOCK
|
||||
VATTACH_UNLOCK
|
||||
@ -533,11 +545,13 @@ defect #2080 for details.
|
||||
}
|
||||
VOL_UNLOCK
|
||||
VATTACH_UNLOCK
|
||||
if (ack) {
|
||||
#ifdef AFS_NT40_ENV
|
||||
send(fd, &rc, 1, 0);
|
||||
send(fd, &rc, 1, 0);
|
||||
#else
|
||||
write(fd, &rc, 1);
|
||||
write(fd, &rc, 1);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
static void FSYNC_Drop(fd)
|
||||
|
Loading…
Reference in New Issue
Block a user