You can if the filter does not introduce any zeros in the frequency domain, which your filter unfortunately does because its frequency response is zero for $\omega=0$. What you normally have to do is zero-pad the impulse response $h(n)$ to the same length as the result of the convolution, i.e. $y(n)$. Then you compute the DFT (FFT) of the two zero-padded sequences:
$$H(k)=DFT\{h(n)\}$$
$$Y(k)=DFT\{y(n)\}$$
Now you have
$$Y(k)=H(k)X(k)\tag{1}$$
where $X(k)$ is the DFT (FFT) of the zero-padded input signal (such that it has the same length as $y(n)$). From (1) you can compute $X(k)$ for all indices $k$ for which $H(k)\neq 0$. In your case $H(0)=0$, so you can't compute $X(0)$. You can, however, compute all other values of $X(k)$ from (1).
For your example this means that you can determine the original time signal $x(n)$ from $X(k)$ up to its mean value. E.g., if you choose $X(0)=0$ and apply an inverse DFT you'll get the original signal but with a mean value of zero.
In Matlab it would look like this:
Nx = 100; x = randn(Nx,1); % some input signal
h = [1,-2,1]'; Nh = 3; % impulse response
y = conv(x,h); % convolution
h0 = [h;zeros(Nx-1,1)]; % zero-padding
Y = fft(y); H = fft(h0);
X = Y(2:end)./H(2:end); % undo filtering except for DC
X = [0;X]; % add arbitrary DC value
x_ = real(ifft(X)); % reconstruct input signal (up to mean)
plot(x-x_(1:Nx)); % should be constant