Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 7 years ago

Closed 5 years ago

#434 closed defect (fixed)

USB mass storage writes not flushed

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone: 0.6.0
Component: helenos/unspecified Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

It has been reported that when you mount a file system on a USB stick, modify it and then unmount (offline?) and pull it out, some or all of the modifications do not persist on the media.

Need to investigate this. Could be there is some write cache in the stick controller that needs to be flushed somehow, either via a SCSI command or on the USB or USB-MS layer.

If this is a SCSI command, it might be useful to do the flush when the file system is unmounted, rather when the device is offlined. This would mean either doing it when the file system closes the block device or extending the block device interface with a flush method.

Change History (3)

comment:1 Changed 7 years ago by Jakub Jermář

Milestone: 0.5.00.5.1

Based on the 0.5.0 release bug court ruling, retargetting to 0.5.1.

comment:2 Changed 7 years ago by Jiri Svoboda

From SCSI SBC perspective the direct-access block device is allowed to use a non-volatile write-back cache by default. It is possible to disable write-back for individual writes (FUA, SYNC_NV). It is also possible to flush the writes using the Synchronize Cache (10, 16) commands. It would be a good idea to perform Synchronize Cache as part of unmounting a file system (synchronously or asynchronously?)

comment:3 Changed 5 years ago by Jiri Svoboda

Resolution: fixed
Status: newclosed

Fixed in mainline,2188. libblock issues a synchronous sync cache command as part of block_fini().

Note: See TracTickets for help on using tickets.