block: use blk_rq_init() to initialize the request
Any path needs to call it to initialize the request. This is a preparation for large command support, which needs to initialize the request in a proper way (that is, just doing a memset() will not work). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Родитель
2a4aa30c5f
Коммит
4f54eec831
|
@ -537,6 +537,7 @@ static int nbd_ioctl(struct inode *inode, struct file *file,
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case NBD_DISCONNECT:
|
case NBD_DISCONNECT:
|
||||||
printk(KERN_INFO "%s: NBD_DISCONNECT\n", lo->disk->disk_name);
|
printk(KERN_INFO "%s: NBD_DISCONNECT\n", lo->disk->disk_name);
|
||||||
|
blk_rq_init(NULL, &sreq);
|
||||||
sreq.cmd_type = REQ_TYPE_SPECIAL;
|
sreq.cmd_type = REQ_TYPE_SPECIAL;
|
||||||
nbd_cmd(&sreq) = NBD_CMD_DISC;
|
nbd_cmd(&sreq) = NBD_CMD_DISC;
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -716,10 +716,8 @@ static int pd_special_command(struct pd_unit *disk,
|
||||||
struct request rq;
|
struct request rq;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
memset(&rq, 0, sizeof(rq));
|
blk_rq_init(NULL, &rq);
|
||||||
rq.errors = 0;
|
|
||||||
rq.rq_disk = disk->gd;
|
rq.rq_disk = disk->gd;
|
||||||
rq.ref_count = 1;
|
|
||||||
rq.end_io_data = &wait;
|
rq.end_io_data = &wait;
|
||||||
rq.end_io = blk_end_sync_rq;
|
rq.end_io = blk_end_sync_rq;
|
||||||
blk_insert_request(disk->gd->queue, &rq, 0, func);
|
blk_insert_request(disk->gd->queue, &rq, 0, func);
|
||||||
|
|
|
@ -1771,6 +1771,7 @@ scsi_reset_provider(struct scsi_device *dev, int flag)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int rtn;
|
int rtn;
|
||||||
|
|
||||||
|
blk_rq_init(NULL, &req);
|
||||||
scmd->request = &req;
|
scmd->request = &req;
|
||||||
memset(&scmd->eh_timeout, 0, sizeof(scmd->eh_timeout));
|
memset(&scmd->eh_timeout, 0, sizeof(scmd->eh_timeout));
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче