summary refs log tree commit diff
path: root/fs/jfs
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2009-04-07 14:48:16 +0300
committerDave Kleikamp <shaggy@linux.vnet.ibm.com>2009-04-07 08:19:45 -0500
commit9c83633ad38138855181af6936e8ac570ef7e2cb (patch)
treec9f0bd8139aafe3d1db50c457a520aeaff9ec7f6 /fs/jfs
parentd508afb437daee7cf07da085b635c44a4ebf9b38 (diff)
downloadlinux-9c83633ad38138855181af6936e8ac570ef7e2cb.tar.gz
missing unlock in jfs_quota_write()
We should unlock &inode->i_mutex on the error path.  This bug was
in ext2_quota_write().  I sent a patch to them today as well.

Found by smatch (http://repo.or.cz/w/smatch.git).  Compile tested.

regards,
dan carpenter

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Diffstat (limited to 'fs/jfs')
-rw-r--r--fs/jfs/super.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index 6f21adf9479a..d9b0e92b3602 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -720,8 +720,10 @@ static ssize_t jfs_quota_write(struct super_block *sb, int type,
 		blk++;
 	}
 out:
-	if (len == towrite)
+	if (len == towrite) {
+		mutex_unlock(&inode->i_mutex);
 		return err;
+	}
 	if (inode->i_size < off+len-towrite)
 		i_size_write(inode, off+len-towrite);
 	inode->i_version++;