missing unlock in jfs_quota_write()
authorDan Carpenter <error27@gmail.com>
Tue, 7 Apr 2009 11:48:16 +0000 (14:48 +0300)
committerDave Kleikamp <shaggy@linux.vnet.ibm.com>
Tue, 7 Apr 2009 13:19:45 +0000 (08:19 -0500)
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>
fs/jfs/super.c

index 6f21adf9479af7602009a736b5cede2b820db79c..d9b0e92b36021f235b00fa9549c865de5eee26af 100644 (file)
@@ -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++;