block device generic handling