Q:

Is there a USB alternative to Mass Storage which works at the filesystem layer?

Is there a USB alternative to Mass Storage which works at the filesystem layer?
The goal is to be make a USB device which is mountable as a filesystem, not a block device.
The difference is that working at the filesystem layer would allow the device to coordinate writes to it's backing storage that happen both from the host OS and from the device itself. 
Interfacing at the block device layer, means that the device would have to stop writing as soon as it was mounted on the host OS (as SD cards in phones used to).
I'm interested in support in the big three OSs (Linux, OSX and Windows 7+), but not Andriod, iOS or other Unix variants.

A:

The Media Transfer Protocol device class is pretty close to what you're looking for. It's not always exposed as a "normal" filesystem in all operating systems, but it does implement operations at the file level, rather than at the block level, like you're asking for.

