cmd[0] = WRITE_FILEMARKS;
                cmd[4] = 1 + STp->two_fm;
 
-               SRpnt = st_do_scsi(NULL, STp, cmd, 0, DMA_NONE,
-                                  STp->device->request_queue->rq_timeout,
-                                  MAX_WRITE_RETRIES, 1);
+               SRpnt = st_allocate_request(STp);
                if (!SRpnt) {
-                       result = (STp->buffer)->syscall_result;
+                       result = STp->buffer->syscall_result;
+                       goto out;
+               }
+
+               result = st_scsi_kern_execute(SRpnt, cmd, DMA_NONE, NULL, 0,
+                                             STp->device->request_queue->rq_timeout,
+                                             MAX_WRITE_RETRIES);
+               if (result) {
+                       st_release_request(SRpnt);
                        goto out;
                }