From: Evgeniy Polyakov Signed-off-by: Evgeniy Polyakov Cc: akpm: obviously correct, OK for -stable immediately. Signed-off-by: Andrew Morton --- fs/ufs/super.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN fs/ufs/super.c~ufs-inode-i_sem-is-not-released-in-error-path fs/ufs/super.c --- devel/fs/ufs/super.c~ufs-inode-i_sem-is-not-released-in-error-path 2006-01-03 17:58:13.000000000 -0800 +++ devel-akpm/fs/ufs/super.c 2006-01-03 17:58:13.000000000 -0800 @@ -1296,8 +1296,10 @@ static ssize_t ufs_quota_write(struct su 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++; _