diff options
author | Dan Carpenter <error27@gmail.com> | 2009-04-07 13:48:16 +0200 |
---|---|---|
committer | Dave Kleikamp <shaggy@linux.vnet.ibm.com> | 2009-04-07 15:19:45 +0200 |
commit | 9c83633ad38138855181af6936e8ac570ef7e2cb (patch) | |
tree | c9f0bd8139aafe3d1db50c457a520aeaff9ec7f6 /fs/jfs/super.c | |
parent | NFS: Fix a double free in nfs_parse_mount_options() (diff) | |
download | linux-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>
Diffstat (limited to 'fs/jfs/super.c')
-rw-r--r-- | fs/jfs/super.c | 4 |
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++; |