summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2009-04-07 13:48:16 +0200
committerDave Kleikamp <shaggy@linux.vnet.ibm.com>2009-04-07 15:19:45 +0200
commit9c83633ad38138855181af6936e8ac570ef7e2cb (patch)
treec9f0bd8139aafe3d1db50c457a520aeaff9ec7f6
parentNFS: Fix a double free in nfs_parse_mount_options() (diff)
downloadlinux-9c83633ad38138855181af6936e8ac570ef7e2cb.tar.xz
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>
-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++;