patch-2.4.27 linux-2.4.27/drivers/scsi/osst.c
Next file: linux-2.4.27/drivers/scsi/sata_promise.c
Previous file: linux-2.4.27/drivers/scsi/oktagon_esp.c
Back to the patch index
Back to the overall index
- Lines: 76
- Date:
2004-08-07 16:26:05.522382444 -0700
- Orig file:
linux-2.4.26/drivers/scsi/osst.c
- Orig date:
2004-02-18 05:36:31.000000000 -0800
diff -urN linux-2.4.26/drivers/scsi/osst.c linux-2.4.27/drivers/scsi/osst.c
@@ -3148,6 +3148,7 @@
ST_mode * STm;
ST_partstat * STps;
int dev = TAPE_NR(inode->i_rdev);
+ loff_t pos = *ppos;
STp = os_scsi_tapes[dev];
@@ -3369,7 +3370,7 @@
if (i == (-ENOSPC)) {
transfer = STp->buffer->writing; /* FIXME -- check this logic */
if (transfer <= do_count) {
- filp->f_pos += do_count - transfer;
+ pos += do_count - transfer;
count -= do_count - transfer;
if (STps->drv_block >= 0) {
STps->drv_block += (do_count - transfer) / STp->block_size;
@@ -3407,7 +3408,7 @@
goto out;
}
- filp->f_pos += do_count;
+ pos += do_count;
b_point += do_count;
count -= do_count;
if (STps->drv_block >= 0) {
@@ -3429,7 +3430,7 @@
if (STps->drv_block >= 0) {
STps->drv_block += blks;
}
- filp->f_pos += count;
+ pos += count;
count = 0;
}
@@ -3459,6 +3460,7 @@
retval = total;
out:
+ *ppos = pos;
if (SRpnt != NULL) scsi_release_request(SRpnt);
up(&STp->lock);
@@ -3479,6 +3481,7 @@
ST_partstat * STps;
Scsi_Request *SRpnt = NULL;
int dev = TAPE_NR(inode->i_rdev);
+ loff_t pos = *ppos;
STp = os_scsi_tapes[dev];
@@ -3614,7 +3617,7 @@
}
STp->logical_blk_num += transfer / STp->block_size;
STps->drv_block += transfer / STp->block_size;
- filp->f_pos += transfer;
+ pos += transfer;
buf += transfer;
total += transfer;
}
@@ -3653,6 +3656,7 @@
retval = total;
out:
+ *ppos = pos;
if (SRpnt != NULL) scsi_release_request(SRpnt);
up(&STp->lock);
@@ -5501,6 +5505,7 @@
read: osst_read,
write: osst_write,
ioctl: osst_ioctl,
+ llseek: no_llseek,
open: os_scsi_tape_open,
flush: os_scsi_tape_flush,
release: os_scsi_tape_close,
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)