add a mechanism to use random LBA in scsi read/write
[tridge/dbench.git] / linux_scsi.c
index b2e1b7a..5dbc167 100644 (file)
@@ -225,6 +225,10 @@ static void scsi_read6(struct dbench_op *op)
        char data[data_size];
        unsigned char sc;
 
+       if (lba == 0xffffffff) {
+               lba = random();
+       }
+
        /* we only have 24 bit addresses in read 6 */
        if (lba > 0x00ffffff) {
                lba &= 0x00ffffff;
@@ -274,6 +278,10 @@ static void scsi_read10(struct dbench_op *op)
        char data[data_size];
        unsigned char sc;
 
+       if (lba == 0xffffffff) {
+               lba = random();
+       }
+
        /* make sure we wrap properly instead of failing if the loadfile
           is bigger than our device
        */
@@ -329,6 +337,10 @@ static void scsi_write10(struct dbench_op *op)
                return;
        }
 
+       if (lba == 0xffffffff) {
+               lba = random();
+       }
+
        /* make sure we wrap properly instead of failing if the loadfile
           is bigger than our device
        */