Well, just to make sure you know this but the problem may lie on the SATA-USB controller itself which makes those errors. Drive itself may be ok. If you don’t have worries about warranty, take the thing apart and put the drive directly into mobo.
I’ll tell a story that might help. But probably not.
I had a 3,5" external drive which started to act up (reset timeout or something like that). I took the casing apart and installed the drive as internal drive. Reset timeouts fixed.
Soon I started to get corrupted data and write errors and after a while SMART error for reallocation sector count. Also the value of attribute 197 “Current pending sector count” was huge. The drive (when it was external) was possibly dropped once so I reckoned there might be bad sectors on the drive but not that much what the pending sector count said.
From here on forwards I don’t have the faintest idea if I am on the right track, so please don’t take the following as an absolute or anyways true.
I reckoned the USB-SATA board was faulty because it was giving those timeout errors in multiple computers. I managed to rescue most of the data from the drive using dd_rescue. I noticed that the files that were damaged had several hundred megabyte “blocks” that were unreadable.
I thought that faulty USB-SATA board + possible bad sectors equalled fubared file system. And all this made the drive firmware think that it has to reallocate sectors on spare areas.
So I started to write zeros for the whole drive (dd if=/dev/zero of=/dev/sdX). I think that when the drive is absolutely full and you try to write to it - the drives firmware will force the reallocation of sectors.
After creating a filesystem on the drive and running the badblocks-test the SMART data said that we have 6 reallocated sectors, 0 bad sectors and 0 current pending sector count.
So in reality there was only 6 bad sectors which were remapped to spare areas of the drive -> File system sees 0 bad sectors.
I really really don’t trust that drive, but it’s been running for about a year now without any problems. SMART data is also fine, apart from the reallocated sectors.