afs: Use common cleanup code for lockctl EINVAL
authorAndrew Deason <adeason@sinenomine.net>
Tue, 2 Oct 2012 20:04:47 +0000 (15:04 -0500)
committerDerrick Brashear <shadow@your-file-system.com>
Wed, 3 Oct 2012 03:13:25 +0000 (20:13 -0700)
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.

Change-Id: I136a78bc3235454db7e3d69bb79b0061cfcab265
Reviewed-on: http://gerrit.openafs.org/8196
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/afs/VNOPS/afs_vnop_flock.c

index 0e92fc0..37e58ed 100644 (file)
@@ -606,8 +606,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)