Re: [PATCH 2/7] fsnotify: Add missing annotation for fsnotify_finish_user_wait()

From: Jules Irenge
Date: Fri Apr 03 2020 - 12:16:16 EST




On Wed, 1 Apr 2020, Jan Kara wrote:

On Tue 31-03-20 21:46:38, Jules Irenge wrote:
Sparse reports a warning at fsnotify_finish_user_wait()

warning: context imbalance in fsnotify_finish_user_wait()
- wrong count at exit

The root cause is the missing annotation at fsnotify_finish_user_wait()
Add the missing __acquires(&fsnotify_mark_srcu) annotation.

Signed-off-by: Jules Irenge <jbi.octave@xxxxxxxxx>

OK, but then fsnotify_prepare_user_wait() needs __releases annotation as
well if we're going to be serious about sparse warnings in this code?

Honza

---
fs/notify/mark.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/notify/mark.c b/fs/notify/mark.c
index 1d96216dffd1..44fea637bb02 100644
--- a/fs/notify/mark.c
+++ b/fs/notify/mark.c
@@ -350,6 +350,7 @@ bool fsnotify_prepare_user_wait(struct fsnotify_iter_info *iter_info)
}

void fsnotify_finish_user_wait(struct fsnotify_iter_info *iter_info)
+ __acquires(&fsnotify_mark_srcu)
{
int type;

--
2.24.1

--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR


Thanks for the reply. I think adding an annotation at fsnotify_prepare_user_wait() will not theoretically remove the warning. That's the only reason why I skipped it .
Best regards,
Jules