Commit ab640db0 authored by Carsten Otte's avatar Carsten Otte Committed by Martin Schwidefsky

[S390] tape message cleanup

This is a cleanup of all the messages this driver prints. It uses the
dev_message macros now.
Signed-off-by: default avatarCarsten Otte <cotte@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 1edad85b
...@@ -324,8 +324,6 @@ static inline void tape_proc_cleanup (void) {;} ...@@ -324,8 +324,6 @@ static inline void tape_proc_cleanup (void) {;}
#endif #endif
/* a function for dumping device sense info */ /* a function for dumping device sense info */
extern void tape_dump_sense(struct tape_device *, struct tape_request *,
struct irb *);
extern void tape_dump_sense_dbf(struct tape_device *, struct tape_request *, extern void tape_dump_sense_dbf(struct tape_device *, struct tape_request *,
struct irb *); struct irb *);
......
This diff is collapsed.
This diff is collapsed.
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
* Stefan Bader <shbader@de.ibm.com> * Stefan Bader <shbader@de.ibm.com>
*/ */
#define KMSG_COMPONENT "tape"
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/blkdev.h> #include <linux/blkdev.h>
...@@ -23,8 +25,6 @@ ...@@ -23,8 +25,6 @@
#include "tape.h" #include "tape.h"
#define PRINTK_HEADER "TAPE_BLOCK: "
#define TAPEBLOCK_MAX_SEC 100 #define TAPEBLOCK_MAX_SEC 100
#define TAPEBLOCK_MIN_REQUEUE 3 #define TAPEBLOCK_MIN_REQUEUE 3
...@@ -279,8 +279,6 @@ tapeblock_cleanup_device(struct tape_device *device) ...@@ -279,8 +279,6 @@ tapeblock_cleanup_device(struct tape_device *device)
tape_put_device(device); tape_put_device(device);
if (!device->blk_data.disk) { if (!device->blk_data.disk) {
PRINT_ERR("(%s): No gendisk to clean up!\n",
dev_name(&device->cdev->dev));
goto cleanup_queue; goto cleanup_queue;
} }
...@@ -314,7 +312,8 @@ tapeblock_revalidate_disk(struct gendisk *disk) ...@@ -314,7 +312,8 @@ tapeblock_revalidate_disk(struct gendisk *disk)
if (!device->blk_data.medium_changed) if (!device->blk_data.medium_changed)
return 0; return 0;
PRINT_INFO("Detecting media size...\n"); dev_info(&device->cdev->dev, "Determining the size of the recorded "
"area...\n");
rc = tape_mtop(device, MTFSFM, 1); rc = tape_mtop(device, MTFSFM, 1);
if (rc) if (rc)
return rc; return rc;
...@@ -341,7 +340,8 @@ tapeblock_revalidate_disk(struct gendisk *disk) ...@@ -341,7 +340,8 @@ tapeblock_revalidate_disk(struct gendisk *disk)
device->bof = rc; device->bof = rc;
nr_of_blks -= rc; nr_of_blks -= rc;
PRINT_INFO("Found %i blocks on media\n", nr_of_blks); dev_info(&device->cdev->dev, "The size of the recorded area is %i "
"blocks\n", nr_of_blks);
set_capacity(device->blk_data.disk, set_capacity(device->blk_data.disk,
nr_of_blks*(TAPEBLOCK_HSEC_SIZE/512)); nr_of_blks*(TAPEBLOCK_HSEC_SIZE/512));
...@@ -376,8 +376,8 @@ tapeblock_open(struct block_device *bdev, fmode_t mode) ...@@ -376,8 +376,8 @@ tapeblock_open(struct block_device *bdev, fmode_t mode)
if (device->required_tapemarks) { if (device->required_tapemarks) {
DBF_EVENT(2, "TBLOCK: missing tapemarks\n"); DBF_EVENT(2, "TBLOCK: missing tapemarks\n");
PRINT_ERR("TBLOCK: Refusing to open tape with missing" dev_warn(&device->cdev->dev, "Opening the tape failed because"
" end of file marks.\n"); " of missing end-of-file marks\n");
rc = -EPERM; rc = -EPERM;
goto put_device; goto put_device;
} }
...@@ -452,7 +452,6 @@ tapeblock_ioctl( ...@@ -452,7 +452,6 @@ tapeblock_ioctl(
rc = -EINVAL; rc = -EINVAL;
break; break;
default: default:
PRINT_WARN("invalid ioctl 0x%x\n", command);
rc = -EINVAL; rc = -EINVAL;
} }
...@@ -474,7 +473,6 @@ tapeblock_init(void) ...@@ -474,7 +473,6 @@ tapeblock_init(void)
if (tapeblock_major == 0) if (tapeblock_major == 0)
tapeblock_major = rc; tapeblock_major = rc;
PRINT_INFO("tape gets major %d for block device\n", tapeblock_major);
return 0; return 0;
} }
......
...@@ -24,8 +24,6 @@ ...@@ -24,8 +24,6 @@
#include "tape_std.h" #include "tape_std.h"
#include "tape_class.h" #include "tape_class.h"
#define PRINTK_HEADER "TAPE_CHAR: "
#define TAPECHAR_MAJOR 0 /* get dynamic major */ #define TAPECHAR_MAJOR 0 /* get dynamic major */
/* /*
...@@ -102,8 +100,6 @@ tapechar_check_idalbuffer(struct tape_device *device, size_t block_size) ...@@ -102,8 +100,6 @@ tapechar_check_idalbuffer(struct tape_device *device, size_t block_size)
if (block_size > MAX_BLOCKSIZE) { if (block_size > MAX_BLOCKSIZE) {
DBF_EVENT(3, "Invalid blocksize (%zd > %d)\n", DBF_EVENT(3, "Invalid blocksize (%zd > %d)\n",
block_size, MAX_BLOCKSIZE); block_size, MAX_BLOCKSIZE);
PRINT_ERR("Invalid blocksize (%zd> %d)\n",
block_size, MAX_BLOCKSIZE);
return -EINVAL; return -EINVAL;
} }
...@@ -485,7 +481,6 @@ tapechar_init (void) ...@@ -485,7 +481,6 @@ tapechar_init (void)
return -1; return -1;
tapechar_major = MAJOR(dev); tapechar_major = MAJOR(dev);
PRINT_INFO("tape gets major %d for character devices\n", MAJOR(dev));
return 0; return 0;
} }
...@@ -496,7 +491,5 @@ tapechar_init (void) ...@@ -496,7 +491,5 @@ tapechar_init (void)
void void
tapechar_exit(void) tapechar_exit(void)
{ {
PRINT_INFO("tape releases major %d for character devices\n",
tapechar_major);
unregister_chrdev_region(MKDEV(tapechar_major, 0), 256); unregister_chrdev_region(MKDEV(tapechar_major, 0), 256);
} }
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
* Stefan Bader <shbader@de.ibm.com> * Stefan Bader <shbader@de.ibm.com>
*/ */
#define KMSG_COMPONENT "tape"
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> // for kernel parameters #include <linux/init.h> // for kernel parameters
#include <linux/kmod.h> // for requesting modules #include <linux/kmod.h> // for requesting modules
...@@ -25,7 +26,6 @@ ...@@ -25,7 +26,6 @@
#include "tape.h" #include "tape.h"
#include "tape_std.h" #include "tape_std.h"
#define PRINTK_HEADER "TAPE_CORE: "
#define LONG_BUSY_TIMEOUT 180 /* seconds */ #define LONG_BUSY_TIMEOUT 180 /* seconds */
static void __tape_do_irq (struct ccw_device *, unsigned long, struct irb *); static void __tape_do_irq (struct ccw_device *, unsigned long, struct irb *);
...@@ -214,13 +214,13 @@ tape_med_state_set(struct tape_device *device, enum tape_medium_state newstate) ...@@ -214,13 +214,13 @@ tape_med_state_set(struct tape_device *device, enum tape_medium_state newstate)
switch(newstate){ switch(newstate){
case MS_UNLOADED: case MS_UNLOADED:
device->tape_generic_status |= GMT_DR_OPEN(~0); device->tape_generic_status |= GMT_DR_OPEN(~0);
PRINT_INFO("(%s): Tape is unloaded\n", dev_info(&device->cdev->dev, "The tape cartridge has been "
dev_name(&device->cdev->dev)); "successfully unloaded\n");
break; break;
case MS_LOADED: case MS_LOADED:
device->tape_generic_status &= ~GMT_DR_OPEN(~0); device->tape_generic_status &= ~GMT_DR_OPEN(~0);
PRINT_INFO("(%s): Tape has been mounted\n", dev_info(&device->cdev->dev, "A tape cartridge has been "
dev_name(&device->cdev->dev)); "mounted\n");
break; break;
default: default:
// print nothing // print nothing
...@@ -333,7 +333,6 @@ tape_generic_online(struct tape_device *device, ...@@ -333,7 +333,6 @@ tape_generic_online(struct tape_device *device,
/* Let the discipline have a go at the device. */ /* Let the discipline have a go at the device. */
device->discipline = discipline; device->discipline = discipline;
if (!try_module_get(discipline->owner)) { if (!try_module_get(discipline->owner)) {
PRINT_ERR("Cannot get module. Module gone.\n");
return -EINVAL; return -EINVAL;
} }
...@@ -391,7 +390,6 @@ int ...@@ -391,7 +390,6 @@ int
tape_generic_offline(struct tape_device *device) tape_generic_offline(struct tape_device *device)
{ {
if (!device) { if (!device) {
PRINT_ERR("tape_generic_offline: no such device\n");
return -ENODEV; return -ENODEV;
} }
...@@ -413,9 +411,6 @@ tape_generic_offline(struct tape_device *device) ...@@ -413,9 +411,6 @@ tape_generic_offline(struct tape_device *device)
DBF_EVENT(3, "(%08x): Set offline failed " DBF_EVENT(3, "(%08x): Set offline failed "
"- drive in use.\n", "- drive in use.\n",
device->cdev_id); device->cdev_id);
PRINT_WARN("(%s): Set offline failed "
"- drive in use.\n",
dev_name(&device->cdev->dev));
spin_unlock_irq(get_ccwdev_lock(device->cdev)); spin_unlock_irq(get_ccwdev_lock(device->cdev));
return -EBUSY; return -EBUSY;
} }
...@@ -435,14 +430,11 @@ tape_alloc_device(void) ...@@ -435,14 +430,11 @@ tape_alloc_device(void)
device = kzalloc(sizeof(struct tape_device), GFP_KERNEL); device = kzalloc(sizeof(struct tape_device), GFP_KERNEL);
if (device == NULL) { if (device == NULL) {
DBF_EXCEPTION(2, "ti:no mem\n"); DBF_EXCEPTION(2, "ti:no mem\n");
PRINT_INFO ("can't allocate memory for "
"tape info structure\n");
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
device->modeset_byte = kmalloc(1, GFP_KERNEL | GFP_DMA); device->modeset_byte = kmalloc(1, GFP_KERNEL | GFP_DMA);
if (device->modeset_byte == NULL) { if (device->modeset_byte == NULL) {
DBF_EXCEPTION(2, "ti:no mem\n"); DBF_EXCEPTION(2, "ti:no mem\n");
PRINT_INFO("can't allocate memory for modeset byte\n");
kfree(device); kfree(device);
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
...@@ -490,7 +482,6 @@ tape_put_device(struct tape_device *device) ...@@ -490,7 +482,6 @@ tape_put_device(struct tape_device *device)
} else { } else {
if (remain < 0) { if (remain < 0) {
DBF_EVENT(4, "put device without reference\n"); DBF_EVENT(4, "put device without reference\n");
PRINT_ERR("put device without reference\n");
} else { } else {
DBF_EVENT(4, "tape_free_device(%p)\n", device); DBF_EVENT(4, "tape_free_device(%p)\n", device);
kfree(device->modeset_byte); kfree(device->modeset_byte);
...@@ -538,8 +529,6 @@ tape_generic_probe(struct ccw_device *cdev) ...@@ -538,8 +529,6 @@ tape_generic_probe(struct ccw_device *cdev)
ret = sysfs_create_group(&cdev->dev.kobj, &tape_attr_group); ret = sysfs_create_group(&cdev->dev.kobj, &tape_attr_group);
if (ret) { if (ret) {
tape_put_device(device); tape_put_device(device);
PRINT_ERR("probe failed for tape device %s\n",
dev_name(&cdev->dev));
return ret; return ret;
} }
cdev->dev.driver_data = device; cdev->dev.driver_data = device;
...@@ -547,7 +536,6 @@ tape_generic_probe(struct ccw_device *cdev) ...@@ -547,7 +536,6 @@ tape_generic_probe(struct ccw_device *cdev)
device->cdev = cdev; device->cdev = cdev;
ccw_device_get_id(cdev, &dev_id); ccw_device_get_id(cdev, &dev_id);
device->cdev_id = devid_to_int(&dev_id); device->cdev_id = devid_to_int(&dev_id);
PRINT_INFO("tape device %s found\n", dev_name(&cdev->dev));
return ret; return ret;
} }
...@@ -584,7 +572,6 @@ tape_generic_remove(struct ccw_device *cdev) ...@@ -584,7 +572,6 @@ tape_generic_remove(struct ccw_device *cdev)
device = cdev->dev.driver_data; device = cdev->dev.driver_data;
if (!device) { if (!device) {
PRINT_ERR("No device pointer in tape_generic_remove!\n");
return; return;
} }
DBF_LH(3, "(%08x): tape_generic_remove(%p)\n", device->cdev_id, cdev); DBF_LH(3, "(%08x): tape_generic_remove(%p)\n", device->cdev_id, cdev);
...@@ -615,10 +602,8 @@ tape_generic_remove(struct ccw_device *cdev) ...@@ -615,10 +602,8 @@ tape_generic_remove(struct ccw_device *cdev)
*/ */
DBF_EVENT(3, "(%08x): Drive in use vanished!\n", DBF_EVENT(3, "(%08x): Drive in use vanished!\n",
device->cdev_id); device->cdev_id);
PRINT_WARN("(%s): Drive in use vanished - " dev_warn(&device->cdev->dev, "A tape unit was detached"
"expect trouble!\n", " while in use\n");
dev_name(&device->cdev->dev));
PRINT_WARN("State was %i\n", device->tape_state);
tape_state_set(device, TS_NOT_OPER); tape_state_set(device, TS_NOT_OPER);
__tape_discard_requests(device); __tape_discard_requests(device);
spin_unlock_irq(get_ccwdev_lock(device->cdev)); spin_unlock_irq(get_ccwdev_lock(device->cdev));
...@@ -829,30 +814,6 @@ __tape_end_request( ...@@ -829,30 +814,6 @@ __tape_end_request(
__tape_start_next_request(device); __tape_start_next_request(device);
} }
/*
* Write sense data to console/dbf
*/
void
tape_dump_sense(struct tape_device* device, struct tape_request *request,
struct irb *irb)
{
unsigned int *sptr;
PRINT_INFO("-------------------------------------------------\n");
PRINT_INFO("DSTAT : %02x CSTAT: %02x CPA: %04x\n",
irb->scsw.cmd.dstat, irb->scsw.cmd.cstat, irb->scsw.cmd.cpa);
PRINT_INFO("DEVICE: %s\n", dev_name(&device->cdev->dev));
if (request != NULL)
PRINT_INFO("OP : %s\n", tape_op_verbose[request->op]);
sptr = (unsigned int *) irb->ecw;
PRINT_INFO("Sense data: %08X %08X %08X %08X \n",
sptr[0], sptr[1], sptr[2], sptr[3]);
PRINT_INFO("Sense data: %08X %08X %08X %08X \n",
sptr[4], sptr[5], sptr[6], sptr[7]);
PRINT_INFO("--------------------------------------------------\n");
}
/* /*
* Write sense data to dbf * Write sense data to dbf
*/ */
...@@ -1051,8 +1012,6 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) ...@@ -1051,8 +1012,6 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
device = (struct tape_device *) cdev->dev.driver_data; device = (struct tape_device *) cdev->dev.driver_data;
if (device == NULL) { if (device == NULL) {
PRINT_ERR("could not get device structure for %s "
"in interrupt\n", dev_name(&cdev->dev));
return; return;
} }
request = (struct tape_request *) intparm; request = (struct tape_request *) intparm;
...@@ -1064,13 +1023,13 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) ...@@ -1064,13 +1023,13 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
/* FIXME: What to do with the request? */ /* FIXME: What to do with the request? */
switch (PTR_ERR(irb)) { switch (PTR_ERR(irb)) {
case -ETIMEDOUT: case -ETIMEDOUT:
PRINT_WARN("(%s): Request timed out\n", DBF_LH(1, "(%s): Request timed out\n",
dev_name(&cdev->dev)); dev_name(&cdev->dev));
case -EIO: case -EIO:
__tape_end_request(device, request, -EIO); __tape_end_request(device, request, -EIO);
break; break;
default: default:
PRINT_ERR("(%s): Unexpected i/o error %li\n", DBF_LH(1, "(%s): Unexpected i/o error %li\n",
dev_name(&cdev->dev), dev_name(&cdev->dev),
PTR_ERR(irb)); PTR_ERR(irb));
} }
...@@ -1182,8 +1141,6 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) ...@@ -1182,8 +1141,6 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
default: default:
if (rc > 0) { if (rc > 0) {
DBF_EVENT(6, "xunknownrc\n"); DBF_EVENT(6, "xunknownrc\n");
PRINT_ERR("Invalid return code from discipline "
"interrupt function.\n");
__tape_end_request(device, request, -EIO); __tape_end_request(device, request, -EIO);
} else { } else {
__tape_end_request(device, request, rc); __tape_end_request(device, request, rc);
...@@ -1323,7 +1280,6 @@ EXPORT_SYMBOL(tape_state_set); ...@@ -1323,7 +1280,6 @@ EXPORT_SYMBOL(tape_state_set);
EXPORT_SYMBOL(tape_med_state_set); EXPORT_SYMBOL(tape_med_state_set);
EXPORT_SYMBOL(tape_alloc_request); EXPORT_SYMBOL(tape_alloc_request);
EXPORT_SYMBOL(tape_free_request); EXPORT_SYMBOL(tape_free_request);
EXPORT_SYMBOL(tape_dump_sense);
EXPORT_SYMBOL(tape_dump_sense_dbf); EXPORT_SYMBOL(tape_dump_sense_dbf);
EXPORT_SYMBOL(tape_do_io); EXPORT_SYMBOL(tape_do_io);
EXPORT_SYMBOL(tape_do_io_async); EXPORT_SYMBOL(tape_do_io_async);
......
...@@ -20,8 +20,6 @@ ...@@ -20,8 +20,6 @@
#include "tape.h" #include "tape.h"
#define PRINTK_HEADER "TAPE_PROC: "
static const char *tape_med_st_verbose[MS_SIZE] = static const char *tape_med_st_verbose[MS_SIZE] =
{ {
[MS_UNKNOWN] = "UNKNOWN ", [MS_UNKNOWN] = "UNKNOWN ",
...@@ -128,7 +126,6 @@ tape_proc_init(void) ...@@ -128,7 +126,6 @@ tape_proc_init(void)
proc_create("tapedevices", S_IFREG | S_IRUGO | S_IWUSR, NULL, proc_create("tapedevices", S_IFREG | S_IRUGO | S_IWUSR, NULL,
&tape_proc_ops); &tape_proc_ops);
if (tape_proc_devices == NULL) { if (tape_proc_devices == NULL) {
PRINT_WARN("tape: Cannot register procfs entry tapedevices\n");
return; return;
} }
} }
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
#include "tape.h" #include "tape.h"
#include "tape_std.h" #include "tape_std.h"
#define PRINTK_HEADER "TAPE_STD: "
/* /*
* tape_std_assign * tape_std_assign
*/ */
...@@ -46,9 +44,8 @@ tape_std_assign_timeout(unsigned long data) ...@@ -46,9 +44,8 @@ tape_std_assign_timeout(unsigned long data)
device->cdev_id); device->cdev_id);
rc = tape_cancel_io(device, request); rc = tape_cancel_io(device, request);
if(rc) if(rc)
PRINT_ERR("(%s): Assign timeout: Cancel failed with rc = %i\n", DBF_EVENT(3, "(%s): Assign timeout: Cancel failed with rc = %i\n",
dev_name(&device->cdev->dev), rc); dev_name(&device->cdev->dev), rc);
} }
int int
...@@ -82,8 +79,6 @@ tape_std_assign(struct tape_device *device) ...@@ -82,8 +79,6 @@ tape_std_assign(struct tape_device *device)
del_timer(&timeout); del_timer(&timeout);
if (rc != 0) { if (rc != 0) {
PRINT_WARN("%s: assign failed - device might be busy\n",
dev_name(&device->cdev->dev));
DBF_EVENT(3, "%08x: assign failed - device might be busy\n", DBF_EVENT(3, "%08x: assign failed - device might be busy\n",
device->cdev_id); device->cdev_id);
} else { } else {
...@@ -105,8 +100,6 @@ tape_std_unassign (struct tape_device *device) ...@@ -105,8 +100,6 @@ tape_std_unassign (struct tape_device *device)
if (device->tape_state == TS_NOT_OPER) { if (device->tape_state == TS_NOT_OPER) {
DBF_EVENT(3, "(%08x): Can't unassign device\n", DBF_EVENT(3, "(%08x): Can't unassign device\n",
device->cdev_id); device->cdev_id);
PRINT_WARN("(%s): Can't unassign device - device gone\n",
dev_name(&device->cdev->dev));
return -EIO; return -EIO;
} }
...@@ -120,8 +113,6 @@ tape_std_unassign (struct tape_device *device) ...@@ -120,8 +113,6 @@ tape_std_unassign (struct tape_device *device)
if ((rc = tape_do_io(device, request)) != 0) { if ((rc = tape_do_io(device, request)) != 0) {
DBF_EVENT(3, "%08x: Unassign failed\n", device->cdev_id); DBF_EVENT(3, "%08x: Unassign failed\n", device->cdev_id);
PRINT_WARN("%s: Unassign failed\n",
dev_name(&device->cdev->dev));
} else { } else {
DBF_EVENT(3, "%08x: Tape unassigned\n", device->cdev_id); DBF_EVENT(3, "%08x: Tape unassigned\n", device->cdev_id);
} }
...@@ -242,8 +233,6 @@ tape_std_mtsetblk(struct tape_device *device, int count) ...@@ -242,8 +233,6 @@ tape_std_mtsetblk(struct tape_device *device, int count)
if (count > MAX_BLOCKSIZE) { if (count > MAX_BLOCKSIZE) {
DBF_EVENT(3, "Invalid block size (%d > %d) given.\n", DBF_EVENT(3, "Invalid block size (%d > %d) given.\n",
count, MAX_BLOCKSIZE); count, MAX_BLOCKSIZE);
PRINT_ERR("Invalid block size (%d > %d) given.\n",
count, MAX_BLOCKSIZE);
return -EINVAL; return -EINVAL;
} }
...@@ -633,14 +622,6 @@ tape_std_mtcompression(struct tape_device *device, int mt_count) ...@@ -633,14 +622,6 @@ tape_std_mtcompression(struct tape_device *device, int mt_count)
if (mt_count < 0 || mt_count > 1) { if (mt_count < 0 || mt_count > 1) {
DBF_EXCEPTION(6, "xcom parm\n"); DBF_EXCEPTION(6, "xcom parm\n");
if (*device->modeset_byte & 0x08)
PRINT_INFO("(%s) Compression is currently on\n",
dev_name(&device->cdev->dev));
else
PRINT_INFO("(%s) Compression is currently off\n",
dev_name(&device->cdev->dev));
PRINT_INFO("Use 1 to switch compression on, 0 to "
"switch it off\n");
return -EINVAL; return -EINVAL;
} }
request = tape_alloc_request(2, 0); request = tape_alloc_request(2, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment