All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chip Salzenberg <chip@valinux.com>
To: Camm Maguire <camm@enhanced.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] 2.2.18 IDE tape problem, with ide-scsi
Date: Tue, 6 Mar 2001 16:34:21 -0800	[thread overview]
Message-ID: <20010306163421.C21468@valinux.com> (raw)
In-Reply-To: <54u25g3yb9.fsf_-_@intech19.enhanced.com>
In-Reply-To: <54u25g3yb9.fsf_-_@intech19.enhanced.com>; from camm@enhanced.com on Tue, Feb 27, 2001 at 11:06:34AM -0500

With Andre's IDE subsystem, I found the below patch necessary to use
my IDE tape drive (Exabyte Eagle TR-4).  Frankly, it's been so long
since I created this patch that I can't remember the detailed reasons
for the changes.  But I knew them once.  :-)  And it works for me.

Reminder, this is against Andre Hedrick's 2.2 IDE subsystem.

Index: drivers/block/ide-tape.c
--- drivers/block/ide-tape.c.prev
+++ drivers/block/ide-tape.c	Tue Dec  5 01:17:32 2000
@@ -3096,7 +3096,10 @@ static int idetape_queue_pc_tail (ide_dr
 static int idetape_flush_tape_buffers (ide_drive_t *drive)
 {
+	idetape_tape_t *tape = drive->driver_data;
 	idetape_pc_t pc;
 	int rc;
 
+	if (tape->chrdev_direction != idetape_direction_write)
+		return 0;
 	idetape_create_write_filemark_cmd(drive, &pc, 0);
 	if ((rc = idetape_queue_pc_tail (drive,&pc)))
@@ -5199,12 +5202,15 @@ static int idetape_chrdev_open (struct i
 	if (tape->chrdev_direction == idetape_direction_none) {
 		MOD_INC_USE_COUNT;
+		if (tape->onstream) {
 #if ONSTREAM_DEBUG
-		if (tape->debug_level >= 6)
-			printk(KERN_INFO "ide-tape: MOD_INC_USE_COUNT in idetape_chrdev_open-2\n");
+			if (tape->debug_level >= 6)
+				printk(KERN_INFO "ide-tape: MOD_INC_USE_COUNT"
+				       " in idetape_chrdev_open-2\n");
 #endif
-		idetape_create_prevent_cmd(drive, &pc, 1);
-		if (!idetape_queue_pc_tail (drive,&pc)) {
-			if (tape->door_locked != DOOR_EXPLICITLY_LOCKED)
-				tape->door_locked = DOOR_LOCKED;
+			idetape_create_prevent_cmd(drive, &pc, 1);
+			if (!idetape_queue_pc_tail (drive,&pc)) {
+				if (tape->door_locked != DOOR_EXPLICITLY_LOCKED)
+					tape->door_locked = DOOR_LOCKED;
+			}
 		}
 		idetape_analyze_headers(drive);
@@ -5258,14 +5264,17 @@ static int idetape_chrdev_release (struc
 		(void) idetape_rewind_tape (drive);
 	if (tape->chrdev_direction == idetape_direction_none) {
-		if (tape->door_locked != DOOR_EXPLICITLY_LOCKED) {
-			idetape_create_prevent_cmd(drive, &pc, 0);
-			if (!idetape_queue_pc_tail (drive,&pc))
-				tape->door_locked = DOOR_UNLOCKED;
-		}
-		MOD_DEC_USE_COUNT;
+		if (tape->onstream) {
+			if (tape->door_locked != DOOR_EXPLICITLY_LOCKED) {
+				idetape_create_prevent_cmd(drive, &pc, 0);
+				if (!idetape_queue_pc_tail (drive,&pc))
+					tape->door_locked = DOOR_UNLOCKED;
+			}
 #if ONSTREAM_DEBUG
-		if (tape->debug_level >= 6)
-			printk(KERN_INFO "ide-tape: MOD_DEC_USE_COUNT in idetape_chrdev_release\n");
+			if (tape->debug_level >= 6)
+				printk(KERN_INFO "ide-tape: MOD_DEC_USE_COUNT"
+				       " in idetape_chrdev_release\n");
 #endif
+		}
+		MOD_DEC_USE_COUNT;
 	}
 	clear_bit (IDETAPE_BUSY, &tape->flags);

-- 
Chip Salzenberg              - a.k.a. -             <chip@valinux.com>
 "We have no fuel on board, plus or minus 8 kilograms."  -- NEAR tech

  parent reply	other threads:[~2001-03-07  0:38 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-27 16:06 2.2.18 IDE tape problem, with ide-scsi Camm Maguire
2001-02-27 15:07 ` Khalid Aziz
2001-02-27 17:19   ` Camm Maguire
2001-02-27 15:34     ` Khalid Aziz
2001-02-27 19:52       ` Camm Maguire
2001-02-27 18:18         ` Khalid Aziz
2001-02-27 20:26           ` Andre Hedrick
2001-02-27 21:26             ` Khalid Aziz
2001-02-28 15:23           ` Camm Maguire
2001-02-28 15:34             ` Mike Dresser
2001-03-07 22:54           ` Camm Maguire
2001-03-12 16:52             ` Khalid Aziz
2001-03-13 14:14               ` Camm Maguire
2001-02-27 17:32     ` Mike Dresser
2001-02-27 18:31       ` Camm Maguire
2001-02-27 18:34         ` Mike Dresser
2001-02-27 19:05           ` Andre Hedrick
2001-02-27 19:40             ` Camm Maguire
2001-03-01 17:02               ` Khalid Aziz
2001-02-27 22:21           ` Alan Cox
2001-02-27 19:01       ` Andre Hedrick
2001-02-27 19:04         ` Mike Dresser
2001-03-07  0:34 ` Chip Salzenberg [this message]
2001-03-07  1:09   ` [PATCH] " Andre Hedrick

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010306163421.C21468@valinux.com \
    --to=chip@valinux.com \
    --cc=camm@enhanced.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.