Browse Source

s390/tape: fix MTIOCGET ioctl to report blocksize

Remove tape_state from status register and report the drive's current
setting for block size instead as known from other tapes.
Density is not supported so nothing to report here.

Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Stefan Haberland 11 years ago
parent
commit
9fc98ad0d2
1 changed files with 3 additions and 1 deletions
  1. 3 1
      drivers/s390/char/tape_char.c

+ 3 - 1
drivers/s390/char/tape_char.c

@@ -402,7 +402,9 @@ __tapechar_ioctl(struct tape_device *device,
 		memset(&get, 0, sizeof(get));
 		get.mt_type = MT_ISUNKNOWN;
 		get.mt_resid = 0 /* device->devstat.rescnt */;
-		get.mt_dsreg = device->tape_state;
+		get.mt_dsreg =
+			((device->char_data.block_size << MT_ST_BLKSIZE_SHIFT)
+			 & MT_ST_BLKSIZE_MASK);
 		/* FIXME: mt_gstat, mt_erreg, mt_fileno */
 		get.mt_gstat = 0;
 		get.mt_erreg = 0;