From 441fda8461c8c1c781c3604d9ddb32747c61657c Mon Sep 17 00:00:00 2001 From: Maxime Lorrillere Date: Mon, 17 Aug 2015 14:04:49 +0200 Subject: [PATCH] staging: lustre: simplify ptlrpc_deactivate_and_unlock_import The locking scheme used in ptlrpc_deactivate_and_unlock_import and ptlrpc_deactivate_import generates the followings sparse errors: drivers/staging/lustre/lustre/ptlrpc/import.c:209:9: warning: context imbalance in 'ptlrpc_deactivate_and_unlock_import' - unexpected unlock drivers/staging/lustre/lustre/ptlrpc/import.c:221:6: warning: context imbalance in 'ptlrpc_deactivate_import' - wrong count at exit As ptlrpc_deactivate_and_unlock_import is only used by ptlrpc_deactivate_import as a helper function, this patch moves its code into ptlrpc_deactivatre_import to fix the sparse warnings. Signed-off-by: Maxime Lorrillere Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/import.c | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 1eae3896c037..1fd85104bd9d 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -200,12 +200,15 @@ int ptlrpc_set_import_discon(struct obd_import *imp, __u32 conn_cnt) return rc; } -/* Must be called with imp_lock held! */ -static void ptlrpc_deactivate_and_unlock_import(struct obd_import *imp) +/* + * This acts as a barrier; all existing requests are rejected, and + * no new requests will be accepted until the import is valid again. + */ +void ptlrpc_deactivate_import(struct obd_import *imp) { - assert_spin_locked(&imp->imp_lock); - CDEBUG(D_HA, "setting import %s INVALID\n", obd2cli_tgt(imp->imp_obd)); + + spin_lock(&imp->imp_lock); imp->imp_invalid = 1; imp->imp_generation++; spin_unlock(&imp->imp_lock); @@ -213,16 +216,6 @@ static void ptlrpc_deactivate_and_unlock_import(struct obd_import *imp) ptlrpc_abort_inflight(imp); obd_import_event(imp->imp_obd, imp, IMP_EVENT_INACTIVE); } - -/* - * This acts as a barrier; all existing requests are rejected, and - * no new requests will be accepted until the import is valid again. - */ -void ptlrpc_deactivate_import(struct obd_import *imp) -{ - spin_lock(&imp->imp_lock); - ptlrpc_deactivate_and_unlock_import(imp); -} EXPORT_SYMBOL(ptlrpc_deactivate_import); static unsigned int -- 2.39.5