[PATCH] UFS: inode->i_sem is not released in error path
authorEvgeniy Polyakov <johnpol@2ka.mipt.ru>
Sun, 8 Jan 2006 09:04:51 +0000 (01:04 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 9 Jan 2006 04:14:04 +0000 (20:14 -0800)
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/ufs/super.c

index 54828ebcf1bacda4d1c94dc4461cd99d8264234d..2ba11a9aa995964721b9edd08ee1a0b1b3c0f688 100644 (file)
@@ -1296,8 +1296,10 @@ static ssize_t ufs_quota_write(struct super_block *sb, int type,
                blk++;
        }
 out:
-       if (len == towrite)
+       if (len == towrite) {
+               up(&inode->i_sem);
                return err;
+       }
        if (inode->i_size < off+len-towrite)
                i_size_write(inode, off+len-towrite);
        inode->i_version++;