Jules Irenge
2020-Feb-23 23:17 UTC
[Ocfs2-devel] [PATCH 30/30] sgi-xp: Add missing annotation for ocfs2_inode_cache_lock() and ocfs2_inode_cache_unlock()
Sparse reports a warning at ocfs2_inode_cache_lock() and ocfs2_inode_cache_unlock() warning: context imbalance in ocfs2_inode_cache_lock() - wrong count at exit warning: context imbalance in ocfs2_inode_cache_unlock() - unexpected unlock The root cause is a missing annotation at ocfs2_inode_cache_lock() and at ocfs2_inode_cache_unlock() Add the missing __acquires(&oi->ip_lock) annotation Add the missing __releases(&oi->ip_lock) annotation Signed-off-by: Jules Irenge <jbi.octave at gmail.com> --- fs/ocfs2/inode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 7c9dfd50c1c1..0b87e0a63ab9 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c @@ -1623,6 +1623,7 @@ static struct super_block *ocfs2_inode_cache_get_super(struct ocfs2_caching_info } static void ocfs2_inode_cache_lock(struct ocfs2_caching_info *ci) + __acquires(&oi->ip_lock) { struct ocfs2_inode_info *oi = cache_info_to_inode(ci); @@ -1630,6 +1631,7 @@ static void ocfs2_inode_cache_lock(struct ocfs2_caching_info *ci) } static void ocfs2_inode_cache_unlock(struct ocfs2_caching_info *ci) + __releases(&oi->ip_lock) { struct ocfs2_inode_info *oi = cache_info_to_inode(ci); -- 2.24.1
Joseph Qi
2020-Feb-24 01:52 UTC
[Ocfs2-devel] [PATCH 30/30] sgi-xp: Add missing annotation for ocfs2_inode_cache_lock() and ocfs2_inode_cache_unlock()
On 2020/2/24 07:17, Jules Irenge wrote:> Sparse reports a warning at ocfs2_inode_cache_lock() > and ocfs2_inode_cache_unlock() > warning: context imbalance in ocfs2_inode_cache_lock() > - wrong count at exit > > warning: context imbalance in ocfs2_inode_cache_unlock() > - unexpected unlock > The root cause is a missing annotation at ocfs2_inode_cache_lock() > and at ocfs2_inode_cache_unlock() > > Add the missing __acquires(&oi->ip_lock) annotation > Add the missing __releases(&oi->ip_lock) annotation > > Signed-off-by: Jules Irenge <jbi.octave at gmail.com>Looks good. BTW, there are another co_cache_[lock|unlock] implementations also miss the annotations: ocfs2_refcount_cache_lock ocfs2_refcount_cache_unlock So could we add the missing annotations as well? Thanks, Joseph> --- > fs/ocfs2/inode.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c > index 7c9dfd50c1c1..0b87e0a63ab9 100644 > --- a/fs/ocfs2/inode.c > +++ b/fs/ocfs2/inode.c > @@ -1623,6 +1623,7 @@ static struct super_block *ocfs2_inode_cache_get_super(struct ocfs2_caching_info > } > > static void ocfs2_inode_cache_lock(struct ocfs2_caching_info *ci) > + __acquires(&oi->ip_lock) > { > struct ocfs2_inode_info *oi = cache_info_to_inode(ci); > > @@ -1630,6 +1631,7 @@ static void ocfs2_inode_cache_lock(struct ocfs2_caching_info *ci) > } > > static void ocfs2_inode_cache_unlock(struct ocfs2_caching_info *ci) > + __releases(&oi->ip_lock) > { > struct ocfs2_inode_info *oi = cache_info_to_inode(ci); > >
Joseph Qi
2020-Feb-25 00:54 UTC
[Ocfs2-devel] [PATCH 30/30] sgi-xp: Add missing annotation for ocfs2_inode_cache_lock() and ocfs2_inode_cache_unlock()
On 2020/2/24 07:17, Jules Irenge wrote:> Sparse reports a warning at ocfs2_inode_cache_lock() > and ocfs2_inode_cache_unlock() > warning: context imbalance in ocfs2_inode_cache_lock() > - wrong count at exit > > warning: context imbalance in ocfs2_inode_cache_unlock() > - unexpected unlock > The root cause is a missing annotation at ocfs2_inode_cache_lock() > and at ocfs2_inode_cache_unlock() > > Add the missing __acquires(&oi->ip_lock) annotation > Add the missing __releases(&oi->ip_lock) annotation > > Signed-off-by: Jules Irenge <jbi.octave at gmail.com>Acked-by: Joseph Qi <joseph.qi at linux.alibaba.com>> --- > fs/ocfs2/inode.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c > index 7c9dfd50c1c1..0b87e0a63ab9 100644 > --- a/fs/ocfs2/inode.c > +++ b/fs/ocfs2/inode.c > @@ -1623,6 +1623,7 @@ static struct super_block *ocfs2_inode_cache_get_super(struct ocfs2_caching_info > } > > static void ocfs2_inode_cache_lock(struct ocfs2_caching_info *ci) > + __acquires(&oi->ip_lock) > { > struct ocfs2_inode_info *oi = cache_info_to_inode(ci); > > @@ -1630,6 +1631,7 @@ static void ocfs2_inode_cache_lock(struct ocfs2_caching_info *ci) > } > > static void ocfs2_inode_cache_unlock(struct ocfs2_caching_info *ci) > + __releases(&oi->ip_lock) > { > struct ocfs2_inode_info *oi = cache_info_to_inode(ci); > >