block: let generic driver API work asynchronously

Fix #990
usb storage: use generic block driver API