Hi, I recently converted to use kref_put_lock() in fs/dlm subsystem and now I get the following warning in sparse: warning: context imbalance in 'put_rsb' - unexpected unlock It seems sparse is not able to detect that there is a conditional requirement that the lock passed to kref_put_lock() (or also refcount_dec_and_lock()) is locked or not. I evaluate the return value to check if kref_put_lock() helds the lock and unlock it then. The idea is that the lock needs only to be held when the refcount is going to be zero. It seems other users unlock the lock at the release callback of kref_put_lock() and annotate the callback with "__releases()" which seems to work to avoid the sparse warning. However this works if you don't have additional stack pointers which you need to pass to the release callback. My question would be is this a known problem and a recommended way to avoid this sparse warning (maybe just for now)? Thanks. - Alex