While Ockie is MIA, I found some things that sound like his problem:
LP: #1456837: USB drive errors with kernel version 3.13.0-35 and above
Also reported to the linux-usb and linux-scsi mailing lists:
http://marc.info/?l=linux-usb&m=143273921914144&w=2
LP: #1456837: USB drive errors with kernel version 3.13.0-35 and above
Also reported to the linux-usb and linux-scsi mailing lists:
http://marc.info/?l=linux-usb&m=143273921914144&w=2
Here's the problem, from right near the start of your trace:
> ffff8800cf87c000 2445467361 S Bo:1:004:2 -115 31 = 55534243 d2000000 00000000 \
> 00000a35 00000000 00000000 00000000 000000
0x35 is a SYNCHRONIZE CACHE command, telling the drive to write the
contents of its internal cache out to the physical medium.
> ffff8800cf87c000 2445467440 C Bo:1:004:2 0 31 >
> ffff8800cf87c000 2445467445 S Bi:1:004:8 -115 13 <
> ffff8800cf87c000 2445467659 C Bi:1:004:8 0 13 = 55534253 d2000000 00000000 01
> ffff8800cf87c000 2445467682 S Bo:1:004:2 -115 31 = 55534243 d3000000 12000000 \
> 80000603 00000012 00000000 00000000 000000 ffff8800cf87c000 2445467811 C Bo:1:004:2 \
> 0 31 > ffff8800bd45c6c0 2445468603 S Bi:1:004:8 -115 18 <
> ffff8800bd45c6c0 2445468688 C Bi:1:004:8 0 18 = 70000500 0000000a 00000000 20000000 \
> 0000 ffff8800cf87c000 2445468695 S Bi:1:004:8 -115 13 <
> ffff8800cf87c000 2445468811 C Bi:1:004:8 0 13 = 55534253 d3000000 00000000 00
The drive replied with an error status, saying that this was an illegal
request with an invalid operation code. Obviously it wasn't, and just
as obviously, your drive does not handle the SYNCHRONIZE CACHE command
properly.
It makes sense that this would trigger the error-detection code added
in commit 89fb4cd1f717 (scsi: handle flush errors properly). After
all, it really was an error in the data-flushing path.
You wrote that the error appears with several different brands and
types of USB drives. Almost certainly these drivers share a bug in the
component that bridges the USB bus to the internal SATA bus.
The real question is what to do about it.