Ao remover com força um dispositivo USB no linux enquanto há gravações pendentes no dispositivo, o log do kernel é preenchido com
blk_update_request: I/O error, dev sdg, sector 50618368
Buffer I/O error on dev sdg, logical block 6327555, lost async page write
[...]
mensagens e redefinições de dispositivo USB:
usb 4-2: reset SuperSpeed USB device number 2 using xhci_hcd
Assumo que a gravação de página assíncrona se refere a páginas sujas no cache de buffer (cache de write-back). Parece que o kernel tenta novamente para cada página suja, o que leva muito tempo. Todos os processos que usam o dispositivo são interrompidos.
Existe alguma maneira de dizer ao kernel, o dispositivo de bloco /dev/sdg
acabou e não vai voltar - por favor, solte todas as páginas sujas para este dispositivo de bloco?
Observação: isso provavelmente também se aplica a qualquer tipo de dispositivo de bloco.
Tags usb-drive block-device buffer