From: Andrew Deason Date: Tue, 27 Dec 2011 02:22:08 +0000 (-0500) Subject: afs: Grab a reference to setp in afs_icl_Event4 X-Git-Tag: upstream/1.6.1.pre2^2~16 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=70fe8ec10943e0ef56b60880064b30ed7804071d;p=packages%2Fo%2Fopenafs.git afs: Grab a reference to setp in afs_icl_Event4 We can drop GLOCK in several places in afs_icl_Event4 and the afs_icl_AppendRecord callee. To ensure that the given afs_icl_set does not get freed while we have GLOCK dropped, grab a reference to the set. Thanks to Ryan C. Underwood for reporting an issue triggered by this. Reviewed-on: http://gerrit.openafs.org/6431 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 7461fa11939556d3b6f3ea38da7ff65607805579) Change-Id: I7a33cf96d2031dd1798f7598918396eb8fbde611 Reviewed-on: http://gerrit.openafs.org/6494 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/afs/afs_icl.c b/src/afs/afs_icl.c index 7c3d17595..7b99e904e 100644 --- a/src/afs/afs_icl.c +++ b/src/afs/afs_icl.c @@ -407,6 +407,7 @@ afs_icl_Event4(struct afs_icl_set *setp, afs_int32 eventID, return 0; AFS_ASSERT_GLOCK(); + afs_icl_SetHold(setp); mask = lAndT >> 24 & 0xff; /* mask of which logs to log to */ ix = ICL_EVENTBYTE(eventID); ObtainReadLock(&setp->lock); @@ -422,6 +423,7 @@ afs_icl_Event4(struct afs_icl_set *setp, afs_int32 eventID, } } ReleaseReadLock(&setp->lock); + afs_icl_SetRele(setp); return 0; }