Messages in this thread Patch in this message | | | From | Tolga Ceylan <> | Subject | [PATCH 1/1] staging: lustre/lustre/obdclass/llog_cat.c: get rid of sparse context imbalance warning | Date | Wed, 3 Jun 2015 13:20:10 -0700 |
| |
In llog_cat_new_log(), sparse emits a context imbalance (unexpected lock) warning due its inability to detect the noreturn attribute in lbug_with_lock() function inside LBUG macro. With this patch, we unlock the spinlock before checking the error condition to resolve this warning.
Signed-off-by: Tolga Ceylan <tolga.ceylan@gmail.com> --- drivers/staging/lustre/lustre/obdclass/llog_cat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/lustre/lustre/obdclass/llog_cat.c b/drivers/staging/lustre/lustre/obdclass/llog_cat.c index c8f6ab0..280e861 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_cat.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_cat.c @@ -103,13 +103,13 @@ static int llog_cat_new_log(const struct lu_env *env, spin_lock(&loghandle->lgh_hdr_lock); llh->llh_count++; - if (ext2_set_bit(index, llh->llh_bitmap)) { + rc = ext2_set_bit(index, llh->llh_bitmap); + spin_unlock(&loghandle->lgh_hdr_lock); + if (rc) { CERROR("argh, index %u already set in log bitmap?\n", index); - spin_unlock(&loghandle->lgh_hdr_lock); LBUG(); /* should never happen */ } - spin_unlock(&loghandle->lgh_hdr_lock); cathandle->lgh_last_idx = index; llh->llh_tail.lrt_index = index; -- 2.4.2
| |