insert sparse annotations to fix following sparse warning.

fs/nilfs2/segment.c:2681:3: warning: context imbalance in 
'nilfs_segctor_kill_thread' - unexpected unlock

Signed-off-by: Jiro SEKIBA <[email protected]>
---
 fs/nilfs2/segment.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 172ad42..c64f6e4 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2677,12 +2677,23 @@ static void nilfs_segctor_kill_thread(struct 
nilfs_sc_info *sci)
 {
        sci->sc_state |= NILFS_SEGCTOR_QUIT;
 
+       /* 
+        * nilfs_segctor_kill_thread is only called inside sc_state_lock lock.
+        * sparse doesn't detect the context and warn "unexpected unlock".
+        * This pretends to lock the sc_state_lock for sparse.
+        */
+       __acquire(&sci->sc_state_lock);
        while (sci->sc_task) {
                wake_up(&sci->sc_wait_daemon);
                spin_unlock(&sci->sc_state_lock);
                wait_event(sci->sc_wait_task, sci->sc_task == NULL);
                spin_lock(&sci->sc_state_lock);
        }
+       /*
+        * Pretending to lock sc_state_lock will cause "wrong count" warning.
+        * This pretends to unlock th sc_state_lock for sparse.
+        */
+       __release(&sci->sc_state_lock);
 }
 
 /*
-- 
1.5.6.5

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to