Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (84 commits) [SCSI] be2iscsi: SGE Len == 64K [SCSI] be2iscsi: Remove premature free of cid [SCSI] be2iscsi: More time for FW [SCSI] libsas: fix bug for vacant phy [SCSI] sd: Fix overflow with big physical blocks [SCSI] st: add MTWEOFI to write filemarks without flushing drive buffer [SCSI] libsas: Don't issue commands to devices that have been hot-removed [SCSI] megaraid_sas: Add Online Controller Reset to MegaRAID SAS drive [SCSI] lpfc 8.3.17: Update lpfc driver version to 8.3.17 [SCSI] lpfc 8.3.17: Replace function reset methodology [SCSI] lpfc 8.3.17: SCSI fixes [SCSI] lpfc 8.3.17: BSG fixes [SCSI] lpfc 8.3.17: SLI Additions and Fixes [SCSI] lpfc 8.3.17: Code Cleanup and Locking fixes [SCSI] zfcp: Remove scsi_cmnd->serial_number from debug traces [SCSI] ipr: fix array error logging [SCSI] aha152x: enable PCMCIA on 64bit [SCSI] scsi_dh_alua: Handle all states correctly [SCSI] cxgb4i: connection and ddp setting update [SCSI] cxgb3i: fixed connection over vlan ...
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
Steve Hirsch, Andreas Koppenh"ofer, Michael Leodolter, Eyal Lebedinsky,
|
||||
Michael Schaefer, J"org Weule, and Eric Youngdale.
|
||||
|
||||
Copyright 1992 - 2008 Kai Makisara
|
||||
Copyright 1992 - 2010 Kai Makisara
|
||||
email Kai.Makisara@kolumbus.fi
|
||||
|
||||
Some small formal changes - aeb, 950809
|
||||
@@ -17,7 +17,7 @@
|
||||
Last modified: 18-JAN-1998 Richard Gooch <rgooch@atnf.csiro.au> Devfs support
|
||||
*/
|
||||
|
||||
static const char *verstr = "20081215";
|
||||
static const char *verstr = "20100829";
|
||||
|
||||
#include <linux/module.h>
|
||||
|
||||
@@ -2696,18 +2696,21 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon
|
||||
}
|
||||
break;
|
||||
case MTWEOF:
|
||||
case MTWEOFI:
|
||||
case MTWSM:
|
||||
if (STp->write_prot)
|
||||
return (-EACCES);
|
||||
cmd[0] = WRITE_FILEMARKS;
|
||||
if (cmd_in == MTWSM)
|
||||
cmd[1] = 2;
|
||||
if (cmd_in == MTWEOFI)
|
||||
cmd[1] |= 1;
|
||||
cmd[2] = (arg >> 16);
|
||||
cmd[3] = (arg >> 8);
|
||||
cmd[4] = arg;
|
||||
timeout = STp->device->request_queue->rq_timeout;
|
||||
DEBC(
|
||||
if (cmd_in == MTWEOF)
|
||||
if (cmd_in != MTWSM)
|
||||
printk(ST_DEB_MSG "%s: Writing %d filemarks.\n", name,
|
||||
cmd[2] * 65536 + cmd[3] * 256 + cmd[4]);
|
||||
else
|
||||
@@ -2883,8 +2886,8 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon
|
||||
else if (chg_eof)
|
||||
STps->eof = ST_NOEOF;
|
||||
|
||||
if (cmd_in == MTWEOF)
|
||||
STps->rw = ST_IDLE;
|
||||
if (cmd_in == MTWEOF || cmd_in == MTWEOFI)
|
||||
STps->rw = ST_IDLE; /* prevent automatic WEOF at close */
|
||||
} else { /* SCSI command was not completely successful. Don't return
|
||||
from this block without releasing the SCSI command block! */
|
||||
struct st_cmdstatus *cmdstatp = &STp->buffer->cmdstat;
|
||||
@@ -2901,7 +2904,7 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon
|
||||
else
|
||||
undone = 0;
|
||||
|
||||
if (cmd_in == MTWEOF &&
|
||||
if ((cmd_in == MTWEOF || cmd_in == MTWEOFI) &&
|
||||
cmdstatp->have_sense &&
|
||||
(cmdstatp->flags & SENSE_EOM)) {
|
||||
if (cmdstatp->sense_hdr.sense_key == NO_SENSE ||
|
||||
|
Reference in New Issue
Block a user