> Added __acquires / __releases sparse locking annotations > to lock_res_and_lock() and unlock_res_and_lock() functions > in l_lock.c, to fix below sparse warnings: > > l_lock.c:47:22: warning: context imbalance in 'lock_res_and_lock' - wrong count at exit > l_lock.c:61:6: warning: context imbalance in 'unlock_res_and_lock' - unexpected unlock > > Signed-off-by: Nayeemahmed Badebade <itachi.opsrc@xxxxxxxxx> Reviewed-by: James Simmons <jsimmons@xxxxxxxxxxxxx> > --- > > Changes in v2: > * Corrected sparse annotations for the lock > lock->l_resource->lr_lock > > drivers/staging/lustre/lustre/ldlm/l_lock.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/staging/lustre/lustre/ldlm/l_lock.c b/drivers/staging/lustre/lustre/ldlm/l_lock.c > index ea8840c..3845f38 100644 > --- a/drivers/staging/lustre/lustre/ldlm/l_lock.c > +++ b/drivers/staging/lustre/lustre/ldlm/l_lock.c > @@ -45,6 +45,8 @@ > * being an atomic operation. > */ > struct ldlm_resource *lock_res_and_lock(struct ldlm_lock *lock) > + __acquires(&lock->l_lock) > + __acquires(&lock->l_resource->lr_lock) > { > spin_lock(&lock->l_lock); > > @@ -59,6 +61,8 @@ struct ldlm_resource *lock_res_and_lock(struct ldlm_lock *lock) > * Unlock a lock and its resource previously locked with lock_res_and_lock > */ > void unlock_res_and_lock(struct ldlm_lock *lock) > + __releases(&lock->l_resource->lr_lock) > + __releases(&lock->l_lock) > { > /* on server-side resource of lock doesn't change */ > ldlm_clear_res_locked(lock); > -- > 1.9.1 > > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel