diff --git a/fs/ufs/super.c b/fs/ufs/super.c index 54828ebcf1bacda4d1c94dc4461cd99d8264234d..2ba11a9aa995964721b9edd08ee1a0b1b3c0f688 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c @@ -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++;