Jules Irenge
2020-Feb-24 20:41 UTC
[Ocfs2-devel] [PATCH] ocfs2: Add missing annotations for ocfs2_refcount_cache_lock() and ocfs2_refcount_cache_unlock()
Sparse reports warnings at ocfs2_refcount_cache_lock() and ocfs2_refcount_cache_unlock() warning: context imbalance in ocfs2_refcount_cache_lock() - wrong count at exit warning: context imbalance in ocfs2_refcount_cache_unlock() - unexpected unlock The root cause is the missing annotation at ocfs2_refcount_cache_lock() and at ocfs2_refcount_cache_unlock() Add the missing __acquires(&rf->rf_lock) annotation to ocfs2_refcount_cache_lock() Add the missing __releases(&rf->rf_lock) annotation to ocfs2_refcount_cache_unlock() Signed-off-by: Jules Irenge <jbi.octave at gmail.com> --- fs/ocfs2/refcounttree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c index ee43e51188be..da99c80f49da 100644 --- a/fs/ocfs2/refcounttree.c +++ b/fs/ocfs2/refcounttree.c @@ -154,6 +154,7 @@ ocfs2_refcount_cache_get_super(struct ocfs2_caching_info *ci) } static void ocfs2_refcount_cache_lock(struct ocfs2_caching_info *ci) + __acquires(&rf->rf_lock) { struct ocfs2_refcount_tree *rf = cache_info_to_refcount(ci); @@ -161,6 +162,7 @@ static void ocfs2_refcount_cache_lock(struct ocfs2_caching_info *ci) } static void ocfs2_refcount_cache_unlock(struct ocfs2_caching_info *ci) + __releases(&rf->rf_lock) { struct ocfs2_refcount_tree *rf = cache_info_to_refcount(ci); -- 2.24.1
Joseph Qi
2020-Feb-25 00:53 UTC
[Ocfs2-devel] [PATCH] ocfs2: Add missing annotations for ocfs2_refcount_cache_lock() and ocfs2_refcount_cache_unlock()
On 2020/2/25 04:41, Jules Irenge wrote:> Sparse reports warnings at ocfs2_refcount_cache_lock() > and ocfs2_refcount_cache_unlock() > > warning: context imbalance in ocfs2_refcount_cache_lock() > - wrong count at exit > warning: context imbalance in ocfs2_refcount_cache_unlock() > - unexpected unlock > > The root cause is the missing annotation at ocfs2_refcount_cache_lock() > and at ocfs2_refcount_cache_unlock() > > Add the missing __acquires(&rf->rf_lock) annotation > to ocfs2_refcount_cache_lock() > Add the missing __releases(&rf->rf_lock) annotation > to ocfs2_refcount_cache_unlock() > > Signed-off-by: Jules Irenge <jbi.octave at gmail.com>Acked-by: Joseph Qi <joseph.qi at linux.alibaba.com>> --- > fs/ocfs2/refcounttree.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c > index ee43e51188be..da99c80f49da 100644 > --- a/fs/ocfs2/refcounttree.c > +++ b/fs/ocfs2/refcounttree.c > @@ -154,6 +154,7 @@ ocfs2_refcount_cache_get_super(struct ocfs2_caching_info *ci) > } > > static void ocfs2_refcount_cache_lock(struct ocfs2_caching_info *ci) > + __acquires(&rf->rf_lock) > { > struct ocfs2_refcount_tree *rf = cache_info_to_refcount(ci); > > @@ -161,6 +162,7 @@ static void ocfs2_refcount_cache_lock(struct ocfs2_caching_info *ci) > } > > static void ocfs2_refcount_cache_unlock(struct ocfs2_caching_info *ci) > + __releases(&rf->rf_lock) > { > struct ocfs2_refcount_tree *rf = cache_info_to_refcount(ci); > >