From: Andrew Deason Date: Tue, 2 Oct 2012 20:04:47 +0000 (-0500) Subject: afs: Use common cleanup code for lockctl EINVAL X-Git-Tag: upstream/1.6.10_pre1^2~41 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=6041ddf65c5a11725b800372fb1fbec8ba079cd1;p=packages%2Fo%2Fopenafs.git afs: Use common cleanup code for lockctl EINVAL afs_lockctl has common cleanup code in the 'done' label. Use it here, instead of trying to duplicate it. Currently this code path appears to not be dropping the discon lock, which this rectifies. Reviewed-on: http://gerrit.openafs.org/8196 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit eae608d99a5ae94624200f91af6ed818c9f6612b) This commit fixes a vrequest leak introduced by change I1c60701d4e4f85aedfea6be58a03468ab34edb96. On master, the corresponding changes appear in the opposite order. Change-Id: I1f7a5794f19abb1495bbab6014c3ccde99cf0e1d Reviewed-on: http://gerrit.openafs.org/11381 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand --- diff --git a/src/afs/VNOPS/afs_vnop_flock.c b/src/afs/VNOPS/afs_vnop_flock.c index 56c37c82a..805230b07 100644 --- a/src/afs/VNOPS/afs_vnop_flock.c +++ b/src/afs/VNOPS/afs_vnop_flock.c @@ -639,8 +639,8 @@ int afs_lockctl(struct vcache * avc, struct AFS_FLOCK * af, int acmd, else if (af->l_type == F_UNLCK) code = LOCK_UN; else { - afs_PutFakeStat(&fakestate); - return EINVAL; /* unknown lock type */ + code = EINVAL; /* unknown lock type */ + goto done; } if (((acmd == F_SETLK) #if (defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV)) && !defined(AFS_SUN58_ENV)