Prev: [PATCH 12/17] drivers/video/omap2/displays: Add missing mutex_unlock
Next: [PATCH 5/17] drivers/media/video/pvrusb2: Add missing mutex_unlock
From: Julia Lawall on 26 May 2010 12:00 From: Julia Lawall <julia(a)diku.dk> Add a mutex_unlock missing on the error path. The use of this lock is balanced elsewhere in the file. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression E1; @@ * mutex_lock(E1,...); <+... when != E1 if (...) { ... when != E1 * return ...; } ...+> * mutex_unlock(E1,...); // </smpl> Signed-off-by: Julia Lawall <julia(a)diku.dk> --- The use of ENOMEM rather than -ENOMEM is also a bit odd. fs/xfs/quota/xfs_qm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 38e7641..2d8b7bc 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -249,8 +249,10 @@ xfs_qm_hold_quotafs_ref( if (!xfs_Gqm) { xfs_Gqm = xfs_Gqm_init(); - if (!xfs_Gqm) + if (!xfs_Gqm) { + mutex_unlock(&xfs_Gqm_lock); return ENOMEM; + } } /* -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Eric Sandeen on 1 Jun 2010 23:40
Julia Lawall wrote: > From: Julia Lawall <julia(a)diku.dk> > > Add a mutex_unlock missing on the error path. The use of this lock is > balanced elsewhere in the file. > > The semantic match that finds this problem is as follows: > (http://coccinelle.lip6.fr/) > > // <smpl> > @@ > expression E1; > @@ > > * mutex_lock(E1,...); > <+... when != E1 > if (...) { > ... when != E1 > * return ...; > } > ...+> > * mutex_unlock(E1,...); > // </smpl> > > Signed-off-by: Julia Lawall <julia(a)diku.dk> > > --- > The use of ENOMEM rather than -ENOMEM is also a bit odd. All the xfs core code uses positive errors, it's an irix holdover. As things bubble up to the vfs interface, signs get switched. Yeah, it's a bit odd, but nobody dares change it ;) Maybe semantic patching could fix it ;) -Eric -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |