On Mon, 20 Aug 2012, Olaf Hering wrote: > > Currently the st driver does not to break up write requests into smaller > chunks to satisfy the ->max_hw_sectors limit of the underlying host driver. > > # modprobe -v scsi_debug ptype=1 opts=1 dev_size_mb=123 > # dd if=/dev/zero of=/dev/st0 bs=$((1024*54321)) > > This leads to -EBUSY from this call chain: > st_write -> st_do_scsi -> st_scsi_execute -> blk_rq_map_user > > What is the reason for this behaviour? > Should st_write write in smaller chunks, or would that break real > hardware because they expect certain block sizes? > In variable block mode the write() byte count determines the size of the tape block. Exactly one SCSI command is used to write one block. This is why the writes can't be split in variable block mode. In fixed block mode the writes are split but this results in several tape blocks for each write(). Kai -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html