Hi Kai,

I've done more tested. Some stuff didn't work and I've got some suggested 
changes (there are two changes to the patch and one for the mt command). 
Testing results first:

# echo 1 > /sys/bus/scsi/drivers/st/debug_flag
# mt -f /dev/st2 stsetoption can-partitions
# mt -f /dev/st1 stsetoption can-partitions
# mt -f /dev/st0 stsetoption can-partitions

Expect to fail LTO3:

# mt -f /dev/st0 mkpartition 500
/dev/st0: Input/output error

[ 3197.901583] st 5:0:1:0: [st0] Block limits 1 - 16777215 bytes.
[ 3197.903613] st 5:0:1:0: [st0] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3197.903618] st 5:0:1:0: [st0] Density 44, tape length: 0, drv buffer: 1
[ 3197.903622] st 5:0:1:0: [st0] Block size: 0, buffer size: 4096 (1 blocks).
[ 3197.903625] st 5:0:1:0: [st0] Updating partition number in status.
[ 3197.906406] st 5:0:1:0: [st0] Got tape pos. blk 0 part 0.
[ 3197.906429] st 5:0:1:0: [st0] Loading tape.
[ 3197.929484] st 5:0:1:0: [st0] Block limits 1 - 16777215 bytes.
[ 3197.931518] st 5:0:1:0: [st0] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3197.931524] st 5:0:1:0: [st0] Density 44, tape length: 0, drv buffer: 1
[ 3197.931527] st 5:0:1:0: [st0] Block size: 0, buffer size: 4096 (1 blocks).
[ 3197.933840] st 5:0:1:0: [st0] Partition page length is 10 bytes.
[ 3197.933846] st 5:0:1:0: [st0] PP: max 0, add 0, xdp 0, psum 03, pofmetc 0, 
rec 03, units 09, sizes: 400 65535
[ 3197.933851] st 5:0:1:0: [st0] MP: 11 08 00 00 18 03 09 00 01 90 ff ff
[ 3197.933854] st 5:0:1:0: [st0] psd_cnt 1, max.parts 0, nbr_parts 0
[ 3197.933857] st 5:0:1:0: [st0] Formatting tape with two partitions (1 = 500 
MB).
[ 3197.933860] st 5:0:1:0: [st0] Sent partition page length is 10 bytes. 
needs_format: 0
[ 3197.933865] st 5:0:1:0: [st0] PP: max 0, add 1, xdp 1, psum 02, pofmetc 0, 
rec 03, units 00, sizes: 65535 500
[ 3197.933869] st 5:0:1:0: [st0] MP: 11 08 00 01 30 03 00 00 ff ff 01 f4
[ 3197.937706] st 5:0:1:0: [st0] Error: 8000002, cmd: 15 10 0 0 16 0
[ 3197.937712] st 5:0:1:0: [st0] Sense Key : Illegal Request [current]
[ 3197.937716] st 5:0:1:0: [st0] Add. Sense: Invalid field in parameter list
[ 3197.937719] st 5:0:1:0: [st0] Partitioning of tape failed.
[ 3197.937847] st 5:0:1:0: [st0] Rewinding tape.

Works DDS5:

# mt -f /dev/st1 mkpartition 500

[ 3241.355474] st 6:0:3:0: [st1] Block limits 1 - 16777215 bytes.
[ 3241.355775] st 6:0:3:0: [st1] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3241.355779] st 6:0:3:0: [st1] Density 47, tape length: 0, drv buffer: 1
[ 3241.355783] st 6:0:3:0: [st1] Block size: 0, buffer size: 4096 (1 blocks).
[ 3241.355785] st 6:0:3:0: [st1] Updating partition number in status.
[ 3241.356385] st 6:0:3:0: [st1] Got tape pos. blk 0 part 0.
[ 3241.356397] st 6:0:3:0: [st1] Loading tape.
[ 3241.357249] st 6:0:3:0: [st1] Block limits 1 - 16777215 bytes.
[ 3241.357540] st 6:0:3:0: [st1] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3241.357544] st 6:0:3:0: [st1] Density 47, tape length: 0, drv buffer: 1
[ 3241.357547] st 6:0:3:0: [st1] Block size: 0, buffer size: 4096 (1 blocks).
[ 3241.357882] st 6:0:3:0: [st1] Partition page length is 10 bytes.
[ 3241.357887] st 6:0:3:0: [st1] PP: max 1, add 1, xdp 0, psum 02, pofmetc 0, 
rec 03, units 00, sizes: 500 65535
[ 3241.357892] st 6:0:3:0: [st1] MP: 11 08 01 01 10 03 00 00 01 f4 ff ff
[ 3241.357895] st 6:0:3:0: [st1] psd_cnt 1, max.parts 1, nbr_parts 1
[ 3241.357898] st 6:0:3:0: [st1] Formatting tape with two partitions (1 = 500 
MB).
[ 3241.357901] st 6:0:3:0: [st1] Sent partition page length is 10 bytes. 
needs_format: 0
[ 3241.357906] st 6:0:3:0: [st1] PP: max 1, add 1, xdp 1, psum 02, pofmetc 0, 
rec 03, units 00, sizes: 500 65535
[ 3241.357910] st 6:0:3:0: [st1] MP: 11 08 01 01 30 03 00 00 01 f4 ff ff
[ 3464.721058] st 6:0:3:0: [st1] Rewinding tape.

# mt -f /dev/st2 mkpartition 200G

Fails and doesn't print all of the messages related for partitioning:

[ 3514.306582] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 3514.307126] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3514.307129] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 3514.307132] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 3514.307133] st 8:0:0:0: [st2] Updating partition number in status.
[ 3514.308133] st 8:0:0:0: [st2] Got tape pos. blk 0 part 0.
[ 3514.308159] st 8:0:0:0: [st2] Loading tape.
[ 3514.323173] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 3514.323624] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3514.323628] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 3514.323632] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 3514.324507] st 8:0:0:0: [st2] Partition page length is 16 bytes.
[ 3514.324513] st 8:0:0:0: [st2] PP: max 3, add 0, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2620 0
[ 3514.324518] st 8:0:0:0: [st2] MP: 11 0e 03 00 3c 03 09 00 0a 3c 00 00
[ 3514.324521] st 8:0:0:0: [st2] Sending FORMAT MEDIUM
[ 3519.097142] st 8:0:0:0: [st2] Rewinding tape.

The only way that can happen is if it thinks it should be clearing the 
partitions in this code:

        if (scsi3) {
                needs_format = (bp[pgo + PP_OFF_FLAGS] & PP_MSK_POFM) != 0;
                if (needs_format && size == 0) {
                        /* No need to write the mode page when clearing 
partitioning */
                        result = format_medium(STp, 0);
                        goto out;
                }

Since we can format and exit by juming to out here we probably need this in 
there as well before the goto:

                DEBC_printk(STp, "Formatting tape with one partition.\n");

Something appears to have dropped the size to be zero. Should the mt command in 
mt-st reject anything that could become zero with an error? I haven't looked at 
the command to see why it dropped the value to 0 (I am assuming that's where it 
happened). There should probably be an error or something printed otherwise 
someone will assume that the partitioning worked successfully when in fact the 
partitions were cleared.

If instead I ask for 200 instead of 200G I get the following:

[ 3875.588006] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 3875.588617] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3875.588620] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 3875.588622] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 3875.588638] st 8:0:0:0: [st2] Loading tape.
[ 3875.603659] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 3875.604113] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3875.604117] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 3875.604121] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 3875.605052] st 8:0:0:0: [st2] Partition page length is 16 bytes.
[ 3875.605058] st 8:0:0:0: [st2] PP: max 3, add 0, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2620 0
[ 3875.605063] st 8:0:0:0: [st2] MP: 11 0e 03 00 3c 03 09 00 0a 3c 00 00
[ 3875.605066] st 8:0:0:0: [st2] psd_cnt 2, max.parts 3, nbr_parts 0
[ 3875.605069] st 8:0:0:0: [st2] Formatting tape with two partitions (1 = 200 
MB).
[ 3875.605072] st 8:0:0:0: [st2] Sent partition page length is 12 bytes. 
needs_format: 1
[ 3875.605076] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 02, pofmetc 4, 
rec 03, units 00, sizes: 200 0
[ 3875.605080] st 8:0:0:0: [st2] MP: 11 0a 03 01 34 03 00 00 00 c8 00 00
[ 3875.605952] st 8:0:0:0: [st2] Error: 8000002, cmd: 15 10 0 0 18 0
[ 3875.605957] st 8:0:0:0: [st2] Sense Key : Illegal Request [current]
[ 3875.605961] st 8:0:0:0: [st2] Add. Sense: Invalid field in parameter list
[ 3875.605964] st 8:0:0:0: [st2] Partitioning of tape failed.
[ 3875.606087] st 8:0:0:0: [st2] Rewinding tape.

Since a positive number sets the size of the second partition I would have 
expected the sizes to be 0xffff and 200 not 200 and 0.
 
# mt -f /dev/st2 mkpartition 2000

[ 3957.373197] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 3957.373729] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3957.373732] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 3957.373734] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 3957.373750] st 8:0:0:0: [st2] Loading tape.
[ 3957.388599] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 3957.389100] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 3957.389104] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 3957.389108] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 3957.390012] st 8:0:0:0: [st2] Partition page length is 16 bytes.
[ 3957.390015] st 8:0:0:0: [st2] PP: max 3, add 0, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2620 0
[ 3957.390018] st 8:0:0:0: [st2] MP: 11 0e 03 00 3c 03 09 00 0a 3c 00 00
[ 3957.390024] st 8:0:0:0: [st2] psd_cnt 2, max.parts 3, nbr_parts 0
[ 3957.390027] st 8:0:0:0: [st2] Formatting tape with two partitions (1 = 2000 
MB).
[ 3957.390030] st 8:0:0:0: [st2] Sent partition page length is 12 bytes. 
needs_format: 1
[ 3957.390035] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2 0
[ 3957.390039] st 8:0:0:0: [st2] MP: 11 0a 03 01 3c 03 09 00 00 02 00 00
[ 3957.391184] st 8:0:0:0: [st2] Sending FORMAT MEDIUM
[ 3957.398667] st 8:0:0:0: [st2] Error: 8000002, cmd: 4 0 1 0 0 0
[ 3957.398672] st 8:0:0:0: [st2] Sense Key : Illegal Request [current]
[ 3957.398676] st 8:0:0:0: [st2] Add. Sense: Parameter value invalid
[ 3957.398684] st 8:0:0:0: [st2] Rewinding tape.

Again I would have expected 0xffff and 2 not 2 and 0.

If I ask for -2000 then it works:

[ 4197.965653] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 4197.966089] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 4197.966094] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 4197.966098] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 4197.966119] st 8:0:0:0: [st2] Loading tape.
[ 4197.980675] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 4197.981160] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 4197.981165] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 4197.981169] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 4197.982080] st 8:0:0:0: [st2] Partition page length is 16 bytes.
[ 4197.982086] st 8:0:0:0: [st2] PP: max 3, add 0, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2620 0
[ 4197.982091] st 8:0:0:0: [st2] MP: 11 0e 03 00 3c 03 09 00 0a 3c 00 00
[ 4197.982094] st 8:0:0:0: [st2] psd_cnt 2, max.parts 3, nbr_parts 0
[ 4197.982097] st 8:0:0:0: [st2] Formatting tape with two partitions (1 = 2000 
MB).
[ 4197.982100] st 8:0:0:0: [st2] Sent partition page length is 12 bytes. 
needs_format: 1
[ 4197.982105] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2 65535
[ 4197.982108] st 8:0:0:0: [st2] MP: 11 0a 03 01 3c 03 09 00 00 02 ff ff
[ 4197.983306] st 8:0:0:0: [st2] Sending FORMAT MEDIUM
[ 4208.151461] st 8:0:0:0: [st2] Rewinding tape.

As it did set the size of the second partition to be 0xffff.

To investigate what is happening with a positive size I changed this message to 
print the value of target_partition:

                DEBC_printk(STp, "Formatting tape with two partitions "
                            "(%i = %d MB).\n", target_partition,
                            units > 0 ? size * 1000 : size);

Running with 2000 it appears to have worked but not because the values are 
correct since the target partition is 1 the 2 should have been set in the 
second partition size and the first partition size set to be 0xffff:

[ 4826.968682] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 4826.969257] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 4826.969261] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 4826.969265] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 4826.969268] st 8:0:0:0: [st2] Updating partition number in status.
[ 4826.970202] st 8:0:0:0: [st2] Got tape pos. blk 0 part 0.
[ 4826.970225] st 8:0:0:0: [st2] Loading tape.
[ 4826.985156] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 4826.985618] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 4826.985623] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 4826.985626] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 4826.986802] st 8:0:0:0: [st2] Partition page length is 16 bytes.
[ 4826.986809] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 38 2543
[ 4826.986813] st 8:0:0:0: [st2] MP: 11 0e 03 01 3c 03 09 00 00 26 09 ef
[ 4826.986817] st 8:0:0:0: [st2] psd_cnt 2, max.parts 3, nbr_parts 1
[ 4826.986820] st 8:0:0:0: [st2] Formatting tape with two partitions (1 = 2000 
MB).
[ 4826.986823] st 8:0:0:0: [st2] Sent partition page length is 12 bytes. 
needs_format: 1
[ 4826.986827] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2 2543
[ 4826.986831] st 8:0:0:0: [st2] MP: 11 0a 03 01 3c 03 09 00 00 02 09 ef
[ 4826.988174] st 8:0:0:0: [st2] Sending FORMAT MEDIUM
[ 4826.995295] st 8:0:0:0: [st2] Rewinding tape.

This code appears to be wrong:

                bp[psdo] = (size >> 8) & 0xff;
                bp[psdo + 1] = size & 0xff;
                if (target_partition == 0)
                        bp[psdo + 2] = bp[psdo + 3] = 0xff;

I changed it to be:

/*
 * For SSC-3 devices the mode page should be more than 10 bytes
 * long so DDS drives won't see these changes.
 */
                if (bp[pgo + MP_OFF_PAGE_LENGTH] + 2 > 10) {
                        if (target_partition == 0) {
                                bp[psdo] = (size >> 8) & 0xff;
                                bp[psdo + 1] = size & 0xff;
                                bp[psdo + 2] = bp[psdo + 3] = 0xff;
                        } else {
                                bp[psdo + 2] = (size >> 8) & 0xff;
                                bp[psdo + 3] = size & 0xff;
                                bp[psdo] = bp[psdo + 1] = 0xff;
                        }
                } else {
                        bp[psdo] = (size >> 8) & 0xff;
                        bp[psdo + 1] = size & 0xff;
                        if (target_partition == 0)
                                bp[psdo + 2] = bp[psdo + 3] = 0xff;
                }

You may be able to think of a better condition that we can guarantee will work 
with other drives and still not cause issues for DDS but for my HPE DDS and 
LTO6 drives that first test works since HPE DDS drives only have a partition 
format mode page length of 10.

And the debug output now looks like:

# mt -f /dev/st2 mkpartition 20000

[ 5690.261689] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 5690.262311] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 5690.262315] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 5690.262319] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 5690.262321] st 8:0:0:0: [st2] Updating partition number in status.
[ 5690.263230] st 8:0:0:0: [st2] Got tape pos. blk 0 part 0.
[ 5690.263247] st 8:0:0:0: [st2] Loading tape.
[ 5690.278072] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 5690.278780] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 5690.278786] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 5690.278790] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 5690.279985] st 8:0:0:0: [st2] Partition page length is 16 bytes.
[ 5690.279992] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 38 2543
[ 5690.279996] st 8:0:0:0: [st2] MP: 11 0e 03 01 3c 03 09 00 00 26 09 ef
[ 5690.280000] st 8:0:0:0: [st2] psd_cnt 2, max.parts 3, nbr_parts 1
[ 5690.280003] st 8:0:0:0: [st2] Formatting tape with two partitions (1 = 20000 
MB).
[ 5690.280007] st 8:0:0:0: [st2] Sent partition page length is 12 bytes. 
needs_format: 1
[ 5690.280011] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 65535 20
[ 5690.280015] st 8:0:0:0: [st2] MP: 11 0a 03 01 3c 03 09 00 ff ff 00 14
[ 5690.281115] st 8:0:0:0: [st2] Sending FORMAT MEDIUM
[ 5703.254138] st 8:0:0:0: [st2] Rewinding tape.

# mt -f /dev/st2 mkpartition -20000

[ 5770.883236] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 5770.883819] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 5770.883822] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 5770.883824] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 5770.883840] st 8:0:0:0: [st2] Loading tape.
[ 5770.898181] st 8:0:0:0: [st2] Block limits 1 - 16777215 bytes.
[ 5770.898725] st 8:0:0:0: [st2] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 5770.898730] st 8:0:0:0: [st2] Density 5a, tape length: 0, drv buffer: 1
[ 5770.898734] st 8:0:0:0: [st2] Block size: 0, buffer size: 4096 (1 blocks).
[ 5770.899915] st 8:0:0:0: [st2] Partition page length is 16 bytes.
[ 5770.899921] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 2543 38
[ 5770.899926] st 8:0:0:0: [st2] MP: 11 0e 03 01 3c 03 09 00 09 ef 00 26
[ 5770.899929] st 8:0:0:0: [st2] psd_cnt 2, max.parts 3, nbr_parts 1
[ 5770.899932] st 8:0:0:0: [st2] Formatting tape with two partitions (0 = 20000 
MB).
[ 5770.899935] st 8:0:0:0: [st2] Sent partition page length is 12 bytes. 
needs_format: 1
[ 5770.899940] st 8:0:0:0: [st2] PP: max 3, add 1, xdp 1, psum 03, pofmetc 4, 
rec 03, units 09, sizes: 20 65535
[ 5770.899944] st 8:0:0:0: [st2] MP: 11 0a 03 01 3c 03 09 00 00 14 ff ff
[ 5770.901144] st 8:0:0:0: [st2] Sending FORMAT MEDIUM
[ 5781.051229] st 8:0:0:0: [st2] Rewinding tape.

That makes it work in the way I'd expect it to work for LTO and dds still works 
after the change:

# mt -f /dev/st1 mkpartition 500

[ 5836.239854] st 6:0:3:0: [st1] Block limits 1 - 16777215 bytes.
[ 5836.240154] st 6:0:3:0: [st1] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 5836.240158] st 6:0:3:0: [st1] Density 47, tape length: 0, drv buffer: 1
[ 5836.240162] st 6:0:3:0: [st1] Block size: 0, buffer size: 4096 (1 blocks).
[ 5836.240165] st 6:0:3:0: [st1] Updating partition number in status.
[ 5836.240660] st 6:0:3:0: [st1] Got tape pos. blk 0 part 0.
[ 5836.240680] st 6:0:3:0: [st1] Loading tape.
[ 5836.241566] st 6:0:3:0: [st1] Block limits 1 - 16777215 bytes.
[ 5836.241877] st 6:0:3:0: [st1] Mode sense. Length 11, medium 0, WBS 10, BLL 8
[ 5836.241881] st 6:0:3:0: [st1] Density 47, tape length: 0, drv buffer: 1
[ 5836.241885] st 6:0:3:0: [st1] Block size: 0, buffer size: 4096 (1 blocks).
[ 5836.242217] st 6:0:3:0: [st1] Partition page length is 10 bytes.
[ 5836.242222] st 6:0:3:0: [st1] PP: max 1, add 1, xdp 0, psum 02, pofmetc 0, 
rec 03, units 00, sizes: 500 65535
[ 5836.242226] st 6:0:3:0: [st1] MP: 11 08 01 01 10 03 00 00 01 f4 ff ff
[ 5836.242230] st 6:0:3:0: [st1] psd_cnt 1, max.parts 1, nbr_parts 1
[ 5836.242233] st 6:0:3:0: [st1] Formatting tape with two partitions (1 = 500 
MB).
[ 5836.242236] st 6:0:3:0: [st1] Sent partition page length is 10 bytes. 
needs_format: 0
[ 5836.242240] st 6:0:3:0: [st1] PP: max 1, add 1, xdp 1, psum 02, pofmetc 0, 
rec 03, units 00, sizes: 500 65535
[ 5836.242244] st 6:0:3:0: [st1] MP: 11 08 01 01 30 03 00 00 01 f4 ff ff
[ 6062.441198] st 6:0:3:0: [st1] Rewinding tape.

For posterity in case anyone reads this at a later point just to explain the 
size values for DDS - while the DDS sizes may look wrong they are not. The 
second size value is not sent to the tape drive only the first size is since 
most (all?) DDS drives only support setting an explicit size for the second 
partition only and partition 0 automatically gets the rest of the tape.

If the changes are correct and needed and you want to add those two changes 
please do so. I've been looking very carefully at the code changes as part of 
the testing effort and happy to add any combination of reviewed-by and 
tested-by to the patch. If required feel free to change it as needed. I'll 
retest a consolidated version of the patch if you add the changes and send it 
out.

Laurence, when you get your LTO drive test without my changes in to make sure 
you see the same issue and then if you do test with the changes I added above. 
That's just to double check that there's nothing wrong with my setup and the 
code changes are required.

Thanks
Shane
N�����r��y����b�X��ǧv�^�)޺{.n�+����{���"�{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�m��������zZ+�����ݢj"��!�i

Reply via email to