instead of these changes here, let `_invert` be your workhorse here:

```
diff --git a/sympy/solvers/solvers.py b/sympy/solvers/solvers.py
index 008c090..6c3a3e0 100644
--- a/sympy/solvers/solvers.py
+++ b/sympy/solvers/solvers.py
@@ -1753,7 +1753,7 @@ def solve_linear(lhs, rhs=0, symbols=[], exclude=[]):
             if dn:
                 all_zero = False
                 if not xi in dn.free_symbols:
-                    vi = -(nn.subs(xi, 0))/dn
+                    vi = _invert(nn, xi)[0]
```

and then

```
>>> y - Integral(f(x), y)
y - Integral(f(x), y)
>>> solve_linear(_,y)
(y, 0)
```