summaryrefslogtreecommitdiffstats
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
linux-9c83633ad38138855181af6936e8ac570ef7e2cb.tar.bz2
linux-9c83633ad38138855181af6936e8ac570ef7e2cb.zip
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++;