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); > >