Commit 0ed66e7e authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Changpeng Liu
Browse files

scsi: Remove the prefix spdk_ from names of private functions



This patch doesn't change any behavior too.

Change-Id: I67be498bfd4f1ae42e6239de4539e5e99f158279
Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/449397


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
parent 893e02a5
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ spdk_scsi_dev_destruct(struct spdk_scsi_dev *dev)
}

static int
spdk_scsi_dev_find_lowest_free_lun_id(struct spdk_scsi_dev *dev)
scsi_dev_find_lowest_free_lun_id(struct spdk_scsi_dev *dev)
{
	int i;

@@ -133,7 +133,7 @@ spdk_scsi_dev_add_lun(struct spdk_scsi_dev *dev, const char *bdev_name, int lun_

	/* Search the lowest free LUN ID if LUN ID is default */
	if (lun_id == -1) {
		lun_id = spdk_scsi_dev_find_lowest_free_lun_id(dev);
		lun_id = scsi_dev_find_lowest_free_lun_id(dev);
		if (lun_id == -1) {
			SPDK_ERRLOG("Free LUN ID is not found\n");
			return -1;
@@ -265,7 +265,7 @@ spdk_scsi_dev_queue_task(struct spdk_scsi_dev *dev,
}

static struct spdk_scsi_port *
spdk_scsi_dev_find_free_port(struct spdk_scsi_dev *dev)
scsi_dev_find_free_port(struct spdk_scsi_dev *dev)
{
	int i;

@@ -295,7 +295,7 @@ spdk_scsi_dev_add_port(struct spdk_scsi_dev *dev, uint64_t id, const char *name)
		return -1;
	}

	port = spdk_scsi_dev_find_free_port(dev);
	port = scsi_dev_find_free_port(dev);
	if (port == NULL) {
		assert(false);
		return -1;
+31 −31
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ spdk_scsi_lun_complete_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *ta
}

static void
spdk_scsi_lun_complete_mgmt_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *task)
scsi_lun_complete_mgmt_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *task)
{
	TAILQ_REMOVE(&lun->mgmt_tasks, task, scsi_link);

@@ -62,24 +62,24 @@ spdk_scsi_lun_complete_mgmt_task(struct spdk_scsi_lun *lun, struct spdk_scsi_tas
}

static bool
spdk_scsi_lun_has_outstanding_tasks(struct spdk_scsi_lun *lun)
scsi_lun_has_outstanding_tasks(struct spdk_scsi_lun *lun)
{
	return !TAILQ_EMPTY(&lun->tasks);
}

/* Reset task have to wait until all prior outstanding tasks complete. */
static int
spdk_scsi_lun_reset_check_outstanding_tasks(void *arg)
scsi_lun_reset_check_outstanding_tasks(void *arg)
{
	struct spdk_scsi_task *task = (struct spdk_scsi_task *)arg;
	struct spdk_scsi_lun *lun = task->lun;

	if (spdk_scsi_lun_has_outstanding_tasks(lun)) {
	if (scsi_lun_has_outstanding_tasks(lun)) {
		return 0;
	}
	spdk_poller_unregister(&lun->reset_poller);

	spdk_scsi_lun_complete_mgmt_task(lun, task);
	scsi_lun_complete_mgmt_task(lun, task);
	return 1;
}

@@ -87,19 +87,19 @@ void
spdk_scsi_lun_complete_reset_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *task)
{
	if (task->status == SPDK_SCSI_STATUS_GOOD) {
		if (spdk_scsi_lun_has_outstanding_tasks(lun)) {
		if (scsi_lun_has_outstanding_tasks(lun)) {
			lun->reset_poller =
				spdk_poller_register(spdk_scsi_lun_reset_check_outstanding_tasks,
				spdk_poller_register(scsi_lun_reset_check_outstanding_tasks,
						     task, 10);
			return;
		}
	}

	spdk_scsi_lun_complete_mgmt_task(lun, task);
	scsi_lun_complete_mgmt_task(lun, task);
}

static void
_spdk_scsi_lun_execute_mgmt_task(struct spdk_scsi_lun *lun,
_scsi_lun_execute_mgmt_task(struct spdk_scsi_lun *lun,
			    struct spdk_scsi_task *task)
{
	TAILQ_INSERT_TAIL(&lun->mgmt_tasks, task, scsi_link);
@@ -130,7 +130,7 @@ _spdk_scsi_lun_execute_mgmt_task(struct spdk_scsi_lun *lun,
		break;
	}

	spdk_scsi_lun_complete_mgmt_task(lun, task);
	scsi_lun_complete_mgmt_task(lun, task);
}

void
@@ -157,11 +157,11 @@ spdk_scsi_lun_execute_mgmt_task(struct spdk_scsi_lun *lun)
	}
	TAILQ_REMOVE(&lun->pending_mgmt_tasks, task, scsi_link);

	_spdk_scsi_lun_execute_mgmt_task(lun, task);
	_scsi_lun_execute_mgmt_task(lun, task);
}

static void
_spdk_scsi_lun_execute_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *task)
_scsi_lun_execute_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *task)
{
	int rc;

@@ -207,12 +207,12 @@ spdk_scsi_lun_execute_tasks(struct spdk_scsi_lun *lun)

	TAILQ_FOREACH_SAFE(task, &lun->pending_tasks, scsi_link, task_tmp) {
		TAILQ_REMOVE(&lun->pending_tasks, task, scsi_link);
		_spdk_scsi_lun_execute_task(lun, task);
		_scsi_lun_execute_task(lun, task);
	}
}

static void
spdk_scsi_lun_remove(struct spdk_scsi_lun *lun)
scsi_lun_remove(struct spdk_scsi_lun *lun)
{
	spdk_bdev_close(lun->bdev_desc);

@@ -221,7 +221,7 @@ spdk_scsi_lun_remove(struct spdk_scsi_lun *lun)
}

static int
spdk_scsi_lun_check_io_channel(void *arg)
scsi_lun_check_io_channel(void *arg)
{
	struct spdk_scsi_lun *lun = (struct spdk_scsi_lun *)arg;

@@ -230,12 +230,12 @@ spdk_scsi_lun_check_io_channel(void *arg)
	}
	spdk_poller_unregister(&lun->hotremove_poller);

	spdk_scsi_lun_remove(lun);
	scsi_lun_remove(lun);
	return -1;
}

static void
spdk_scsi_lun_notify_hot_remove(struct spdk_scsi_lun *lun)
scsi_lun_notify_hot_remove(struct spdk_scsi_lun *lun)
{
	struct spdk_scsi_desc *desc, *tmp;

@@ -252,15 +252,15 @@ spdk_scsi_lun_notify_hot_remove(struct spdk_scsi_lun *lun)
	}

	if (lun->io_channel) {
		lun->hotremove_poller = spdk_poller_register(spdk_scsi_lun_check_io_channel,
		lun->hotremove_poller = spdk_poller_register(scsi_lun_check_io_channel,
					lun, 10);
	} else {
		spdk_scsi_lun_remove(lun);
		scsi_lun_remove(lun);
	}
}

static int
spdk_scsi_lun_check_pending_tasks(void *arg)
scsi_lun_check_pending_tasks(void *arg)
{
	struct spdk_scsi_lun *lun = (struct spdk_scsi_lun *)arg;

@@ -270,26 +270,26 @@ spdk_scsi_lun_check_pending_tasks(void *arg)
	}
	spdk_poller_unregister(&lun->hotremove_poller);

	spdk_scsi_lun_notify_hot_remove(lun);
	scsi_lun_notify_hot_remove(lun);
	return -1;
}

static void
_spdk_scsi_lun_hot_remove(void *arg1)
_scsi_lun_hot_remove(void *arg1)
{
	struct spdk_scsi_lun *lun = arg1;

	if (spdk_scsi_lun_has_pending_tasks(lun) ||
	    spdk_scsi_lun_has_pending_mgmt_tasks(lun)) {
		lun->hotremove_poller = spdk_poller_register(spdk_scsi_lun_check_pending_tasks,
		lun->hotremove_poller = spdk_poller_register(scsi_lun_check_pending_tasks,
					lun, 10);
	} else {
		spdk_scsi_lun_notify_hot_remove(lun);
		scsi_lun_notify_hot_remove(lun);
	}
}

static void
spdk_scsi_lun_hot_remove(void *remove_ctx)
scsi_lun_hot_remove(void *remove_ctx)
{
	struct spdk_scsi_lun *lun = (struct spdk_scsi_lun *)remove_ctx;
	struct spdk_thread *thread;
@@ -300,15 +300,15 @@ spdk_scsi_lun_hot_remove(void *remove_ctx)

	lun->removed = true;
	if (lun->io_channel == NULL) {
		_spdk_scsi_lun_hot_remove(lun);
		_scsi_lun_hot_remove(lun);
		return;
	}

	thread = spdk_io_channel_get_thread(lun->io_channel);
	if (thread != spdk_get_thread()) {
		spdk_thread_send_msg(thread, _spdk_scsi_lun_hot_remove, lun);
		spdk_thread_send_msg(thread, _scsi_lun_hot_remove, lun);
	} else {
		_spdk_scsi_lun_hot_remove(lun);
		_scsi_lun_hot_remove(lun);
	}
}

@@ -339,7 +339,7 @@ spdk_scsi_lun_construct(struct spdk_bdev *bdev,
		return NULL;
	}

	rc = spdk_bdev_open(bdev, true, spdk_scsi_lun_hot_remove, lun, &lun->bdev_desc);
	rc = spdk_bdev_open(bdev, true, scsi_lun_hot_remove, lun, &lun->bdev_desc);

	if (rc != 0) {
		SPDK_ERRLOG("bdev %s cannot be opened, error=%d\n", spdk_bdev_get_name(bdev), rc);
@@ -364,7 +364,7 @@ spdk_scsi_lun_construct(struct spdk_bdev *bdev,
void
spdk_scsi_lun_destruct(struct spdk_scsi_lun *lun)
{
	spdk_scsi_lun_hot_remove(lun);
	scsi_lun_hot_remove(lun);
}

int
+97 −95
Original line number Diff line number Diff line
@@ -60,10 +60,10 @@
#define INQUIRY_OFFSET(field)		offsetof(struct spdk_scsi_cdb_inquiry_data, field) + \
					sizeof(((struct spdk_scsi_cdb_inquiry_data *)0x0)->field)

static void spdk_bdev_scsi_process_block_resubmit(void *arg);
static void bdev_scsi_process_block_resubmit(void *arg);

static int
spdk_hex2bin(char ch)
hex2bin(char ch)
{
	if ((ch >= '0') && (ch <= '9')) {
		return ch - '0';
@@ -76,13 +76,13 @@ spdk_hex2bin(char ch)
}

static void
spdk_bdev_scsi_set_naa_ieee_extended(const char *name, uint8_t *buf)
bdev_scsi_set_naa_ieee_extended(const char *name, uint8_t *buf)
{
	int i, value, count = 0;
	uint64_t local_value;

	for (i = 0; (i < 16) && (name[i] != '\0'); i++) {
		value = spdk_hex2bin(name[i]);
		value = hex2bin(name[i]);
		if (i % 2) {
			buf[count++] |= value << 4;
		} else {
@@ -103,7 +103,7 @@ spdk_bdev_scsi_set_naa_ieee_extended(const char *name, uint8_t *buf)
}

static int
spdk_bdev_scsi_report_luns(struct spdk_scsi_lun *lun,
bdev_scsi_report_luns(struct spdk_scsi_lun *lun,
		      int sel, uint8_t *data, int alloc_len)
{
	struct spdk_scsi_dev *dev;
@@ -172,7 +172,7 @@ spdk_bdev_scsi_report_luns(struct spdk_scsi_lun *lun,
}

static int
spdk_bdev_scsi_pad_scsi_name(char *dst, const char *name)
bdev_scsi_pad_scsi_name(char *dst, const char *name)
{
	size_t len;

@@ -186,7 +186,7 @@ spdk_bdev_scsi_pad_scsi_name(char *dst, const char *name)
}

static int
spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
		  uint8_t *cdb, uint8_t *data, uint16_t alloc_len)
{
	struct spdk_scsi_lun	*lun;
@@ -311,7 +311,7 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
			desig->piv = 1;
			desig->reserved1 = 0;
			desig->len = 8;
			spdk_bdev_scsi_set_naa_ieee_extended(name, desig->desig);
			bdev_scsi_set_naa_ieee_extended(name, desig->desig);
			len = sizeof(struct spdk_scsi_desig_desc) + 8;

			buf += sizeof(struct spdk_scsi_desig_desc) + desig->len;
@@ -342,7 +342,7 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
			desig->reserved0 = 0;
			desig->piv = 1;
			desig->reserved1 = 0;
			desig->len = spdk_bdev_scsi_pad_scsi_name(desig->desig, dev->name);
			desig->len = bdev_scsi_pad_scsi_name(desig->desig, dev->name);
			len += sizeof(struct spdk_scsi_desig_desc) + desig->len;

			buf += sizeof(struct spdk_scsi_desig_desc) + desig->len;
@@ -823,7 +823,7 @@ mode_sense_page_init(uint8_t *buf, int len, int page, int subpage)
}

static int
spdk_bdev_scsi_mode_sense_page(struct spdk_bdev *bdev,
bdev_scsi_mode_sense_page(struct spdk_bdev *bdev,
			  uint8_t *cdb, int pc, int page, int subpage,
			  uint8_t *data, struct spdk_scsi_task *task)
{
@@ -945,11 +945,11 @@ spdk_bdev_scsi_mode_sense_page(struct spdk_bdev *bdev,
			break;
		case 0xff:
			/* All subpages */
			len += spdk_bdev_scsi_mode_sense_page(bdev,
			len += bdev_scsi_mode_sense_page(bdev,
							 cdb, pc, page,
							 0x00,
							 cp ? &cp[len] : NULL, task);
			len += spdk_bdev_scsi_mode_sense_page(bdev,
			len += bdev_scsi_mode_sense_page(bdev,
							 cdb, pc, page,
							 0x01,
							 cp ? &cp[len] : NULL, task);
@@ -1070,7 +1070,7 @@ spdk_bdev_scsi_mode_sense_page(struct spdk_bdev *bdev,
		case 0x00:
			/* All mode pages */
			for (i = 0x00; i < 0x3e; i ++) {
				len += spdk_bdev_scsi_mode_sense_page(
				len += bdev_scsi_mode_sense_page(
					       bdev, cdb, pc, i, 0x00,
					       cp ? &cp[len] : NULL, task);
			}
@@ -1078,12 +1078,12 @@ spdk_bdev_scsi_mode_sense_page(struct spdk_bdev *bdev,
		case 0xff:
			/* All mode pages and subpages */
			for (i = 0x00; i < 0x3e; i ++) {
				len += spdk_bdev_scsi_mode_sense_page(
				len += bdev_scsi_mode_sense_page(
					       bdev, cdb, pc, i, 0x00,
					       cp ? &cp[len] : NULL, task);
			}
			for (i = 0x00; i < 0x3e; i ++) {
				len += spdk_bdev_scsi_mode_sense_page(
				len += bdev_scsi_mode_sense_page(
					       bdev, cdb, pc, i, 0xff,
					       cp ? &cp[len] : NULL, task);
			}
@@ -1098,7 +1098,7 @@ spdk_bdev_scsi_mode_sense_page(struct spdk_bdev *bdev,
}

static int
spdk_bdev_scsi_mode_sense(struct spdk_bdev *bdev, int md,
bdev_scsi_mode_sense(struct spdk_bdev *bdev, int md,
		     uint8_t *cdb, int dbd, int llbaa, int pc,
		     int page, int subpage, uint8_t *data, struct spdk_scsi_task *task)
{
@@ -1124,7 +1124,7 @@ spdk_bdev_scsi_mode_sense(struct spdk_bdev *bdev, int md,
	}

	pages = data ? &data[hlen + blen] : NULL;
	plen = spdk_bdev_scsi_mode_sense_page(bdev, cdb, pc, page,
	plen = bdev_scsi_mode_sense_page(bdev, cdb, pc, page,
					 subpage,
					 pages, task);
	if (plen < 0) {
@@ -1175,7 +1175,7 @@ spdk_bdev_scsi_mode_sense(struct spdk_bdev *bdev, int md,
}

static int
spdk_bdev_scsi_mode_select_page(struct spdk_bdev *bdev,
bdev_scsi_mode_select_page(struct spdk_bdev *bdev,
			   uint8_t *cdb, int pf, int sp,
			   uint8_t *data, size_t len)
{
@@ -1260,7 +1260,7 @@ spdk_bdev_scsi_mode_select_page(struct spdk_bdev *bdev,

	len -= plen;
	if (len != 0) {
		rc = spdk_bdev_scsi_mode_select_page(bdev, cdb, pf, sp, &data[plen], len);
		rc = bdev_scsi_mode_select_page(bdev, cdb, pf, sp, &data[plen], len);
		if (rc < 0) {
			return rc;
		}
@@ -1269,7 +1269,7 @@ spdk_bdev_scsi_mode_select_page(struct spdk_bdev *bdev,
}

static void
spdk_bdev_scsi_task_complete_cmd(struct spdk_bdev_io *bdev_io, bool success,
bdev_scsi_task_complete_cmd(struct spdk_bdev_io *bdev_io, bool success,
			    void *cb_arg)
{
	struct spdk_scsi_task *task = cb_arg;
@@ -1283,7 +1283,7 @@ spdk_bdev_scsi_task_complete_cmd(struct spdk_bdev_io *bdev_io, bool success,
}

static void
spdk_bdev_scsi_task_complete_reset(struct spdk_bdev_io *bdev_io, bool success,
bdev_scsi_task_complete_reset(struct spdk_bdev_io *bdev_io, bool success,
			      void *cb_arg)
{
	struct spdk_scsi_task *task = cb_arg;
@@ -1298,7 +1298,7 @@ spdk_bdev_scsi_task_complete_reset(struct spdk_bdev_io *bdev_io, bool success,
}

static void
spdk_bdev_scsi_queue_io(struct spdk_scsi_task *task, spdk_bdev_io_wait_cb cb_fn, void *cb_arg)
bdev_scsi_queue_io(struct spdk_scsi_task *task, spdk_bdev_io_wait_cb cb_fn, void *cb_arg)
{
	struct spdk_scsi_lun *lun = task->lun;
	struct spdk_bdev *bdev = lun->bdev;
@@ -1316,7 +1316,7 @@ spdk_bdev_scsi_queue_io(struct spdk_scsi_task *task, spdk_bdev_io_wait_cb cb_fn,
}

static int
spdk_bdev_scsi_sync(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
bdev_scsi_sync(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
	       struct spdk_io_channel *bdev_ch, struct spdk_scsi_task *task,
	       uint64_t lba, uint32_t num_blocks)
{
@@ -1340,11 +1340,11 @@ spdk_bdev_scsi_sync(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
	}

	rc = spdk_bdev_flush_blocks(bdev_desc, bdev_ch, lba, num_blocks,
				    spdk_bdev_scsi_task_complete_cmd, task);
				    bdev_scsi_task_complete_cmd, task);

	if (rc) {
		if (rc == -ENOMEM) {
			spdk_bdev_scsi_queue_io(task, spdk_bdev_scsi_process_block_resubmit, task);
			bdev_scsi_queue_io(task, bdev_scsi_process_block_resubmit, task);
			return SPDK_SCSI_TASK_PENDING;
		}
		SPDK_ERRLOG("spdk_bdev_flush_blocks() failed\n");
@@ -1379,7 +1379,7 @@ _bytes_to_blocks(uint32_t block_size, uint64_t offset_bytes, uint64_t *offset_bl
}

static int
spdk_bdev_scsi_readwrite(struct spdk_scsi_task *task,
bdev_scsi_readwrite(struct spdk_scsi_task *task,
		    uint64_t lba, uint32_t xfer_len, bool is_read)
{
	struct spdk_scsi_lun *lun = task->lun;
@@ -1463,16 +1463,16 @@ spdk_bdev_scsi_readwrite(struct spdk_scsi_task *task,
	if (is_read) {
		rc = spdk_bdev_readv_blocks(bdev_desc, bdev_ch, task->iovs, task->iovcnt,
					    offset_blocks, num_blocks,
					    spdk_bdev_scsi_task_complete_cmd, task);
					    bdev_scsi_task_complete_cmd, task);
	} else {
		rc = spdk_bdev_writev_blocks(bdev_desc, bdev_ch, task->iovs, task->iovcnt,
					     offset_blocks, num_blocks,
					     spdk_bdev_scsi_task_complete_cmd, task);
					     bdev_scsi_task_complete_cmd, task);
	}

	if (rc) {
		if (rc == -ENOMEM) {
			spdk_bdev_scsi_queue_io(task, spdk_bdev_scsi_process_block_resubmit, task);
			bdev_scsi_queue_io(task, bdev_scsi_process_block_resubmit, task);
			return SPDK_SCSI_TASK_PENDING;
		}
		SPDK_ERRLOG("spdk_bdev_%s_blocks() failed\n", is_read ? "readv" : "writev");
@@ -1493,11 +1493,12 @@ struct spdk_bdev_scsi_unmap_ctx {
	uint32_t			count;
};

static int spdk_bdev_scsi_unmap(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
				struct spdk_io_channel *bdev_ch, struct spdk_scsi_task *task, struct spdk_bdev_scsi_unmap_ctx *ctx);
static int bdev_scsi_unmap(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
			   struct spdk_io_channel *bdev_ch, struct spdk_scsi_task *task,
			   struct spdk_bdev_scsi_unmap_ctx *ctx);

static void
spdk_bdev_scsi_task_complete_unmap_cmd(struct spdk_bdev_io *bdev_io, bool success,
bdev_scsi_task_complete_unmap_cmd(struct spdk_bdev_io *bdev_io, bool success,
				  void *cb_arg)
{
	struct spdk_bdev_scsi_unmap_ctx *ctx = cb_arg;
@@ -1554,18 +1555,19 @@ __copy_desc(struct spdk_bdev_scsi_unmap_ctx *ctx, uint8_t *data, size_t data_len
}

static void
spdk_bdev_scsi_unmap_resubmit(void *arg)
bdev_scsi_unmap_resubmit(void *arg)
{
	struct spdk_bdev_scsi_unmap_ctx	*ctx = arg;
	struct spdk_scsi_task *task = ctx->task;
	struct spdk_scsi_lun *lun = task->lun;

	spdk_bdev_scsi_unmap(lun->bdev, lun->bdev_desc, lun->io_channel, task, ctx);
	bdev_scsi_unmap(lun->bdev, lun->bdev_desc, lun->io_channel, task, ctx);
}

static int
spdk_bdev_scsi_unmap(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
		     struct spdk_io_channel *bdev_ch, struct spdk_scsi_task *task, struct spdk_bdev_scsi_unmap_ctx *ctx)
bdev_scsi_unmap(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
		struct spdk_io_channel *bdev_ch, struct spdk_scsi_task *task,
		struct spdk_bdev_scsi_unmap_ctx *ctx)
{
	uint8_t				*data;
	int				i, desc_count = -1;
@@ -1626,11 +1628,11 @@ spdk_bdev_scsi_unmap(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,

		ctx->count++;
		rc = spdk_bdev_unmap_blocks(bdev_desc, bdev_ch, offset_blocks, num_blocks,
					    spdk_bdev_scsi_task_complete_unmap_cmd, ctx);
					    bdev_scsi_task_complete_unmap_cmd, ctx);

		if (rc) {
			if (rc == -ENOMEM) {
				spdk_bdev_scsi_queue_io(task, spdk_bdev_scsi_unmap_resubmit, ctx);
				bdev_scsi_queue_io(task, bdev_scsi_unmap_resubmit, ctx);
				/* Unmap was not yet submitted to bdev */
				ctx->count--;
				return SPDK_SCSI_TASK_PENDING;
@@ -1656,7 +1658,7 @@ spdk_bdev_scsi_unmap(struct spdk_bdev *bdev, struct spdk_bdev_desc *bdev_desc,
}

static int
spdk_bdev_scsi_process_block(struct spdk_scsi_task *task)
bdev_scsi_process_block(struct spdk_scsi_task *task)
{
	struct spdk_scsi_lun *lun = task->lun;
	struct spdk_bdev *bdev = lun->bdev;
@@ -1676,27 +1678,27 @@ spdk_bdev_scsi_process_block(struct spdk_scsi_task *task)
		if (xfer_len == 0) {
			xfer_len = 256;
		}
		return spdk_bdev_scsi_readwrite(task, lba, xfer_len,
		return bdev_scsi_readwrite(task, lba, xfer_len,
					   cdb[0] == SPDK_SBC_READ_6);

	case SPDK_SBC_READ_10:
	case SPDK_SBC_WRITE_10:
		lba = from_be32(&cdb[2]);
		xfer_len = from_be16(&cdb[7]);
		return spdk_bdev_scsi_readwrite(task, lba, xfer_len,
		return bdev_scsi_readwrite(task, lba, xfer_len,
					   cdb[0] == SPDK_SBC_READ_10);

	case SPDK_SBC_READ_12:
	case SPDK_SBC_WRITE_12:
		lba = from_be32(&cdb[2]);
		xfer_len = from_be32(&cdb[6]);
		return spdk_bdev_scsi_readwrite(task, lba, xfer_len,
		return bdev_scsi_readwrite(task, lba, xfer_len,
					   cdb[0] == SPDK_SBC_READ_12);
	case SPDK_SBC_READ_16:
	case SPDK_SBC_WRITE_16:
		lba = from_be64(&cdb[2]);
		xfer_len = from_be32(&cdb[10]);
		return spdk_bdev_scsi_readwrite(task, lba, xfer_len,
		return bdev_scsi_readwrite(task, lba, xfer_len,
					   cdb[0] == SPDK_SBC_READ_16);

	case SPDK_SBC_READ_CAPACITY_10: {
@@ -1765,11 +1767,11 @@ spdk_bdev_scsi_process_block(struct spdk_scsi_task *task)
			len = spdk_bdev_get_num_blocks(bdev) - lba;
		}

		return spdk_bdev_scsi_sync(bdev, lun->bdev_desc, lun->io_channel, task, lba, len);
		return bdev_scsi_sync(bdev, lun->bdev_desc, lun->io_channel, task, lba, len);
		break;

	case SPDK_SBC_UNMAP:
		return spdk_bdev_scsi_unmap(bdev, lun->bdev_desc, lun->io_channel, task, NULL);
		return bdev_scsi_unmap(bdev, lun->bdev_desc, lun->io_channel, task, NULL);

	default:
		return SPDK_SCSI_TASK_UNKNOWN;
@@ -1779,15 +1781,15 @@ spdk_bdev_scsi_process_block(struct spdk_scsi_task *task)
}

static void
spdk_bdev_scsi_process_block_resubmit(void *arg)
bdev_scsi_process_block_resubmit(void *arg)
{
	struct spdk_scsi_task *task = arg;

	spdk_bdev_scsi_process_block(task);
	bdev_scsi_process_block(task);
}

static int
spdk_bdev_scsi_check_len(struct spdk_scsi_task *task, int len, int min_len)
bdev_scsi_check_len(struct spdk_scsi_task *task, int len, int min_len)
{
	if (len >= min_len) {
		return 0;
@@ -1802,7 +1804,7 @@ spdk_bdev_scsi_check_len(struct spdk_scsi_task *task, int len, int min_len)
}

static int
spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
bdev_scsi_process_primary(struct spdk_scsi_task *task)
{
	struct spdk_scsi_lun *lun = task->lun;
	struct spdk_bdev *bdev = lun->bdev;
@@ -1824,7 +1826,7 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
		data_len = spdk_max(4096, alloc_len);
		data = spdk_dma_zmalloc(data_len, 0, NULL);
		assert(data != NULL);
		rc = spdk_bdev_scsi_inquiry(bdev, task, cdb, data, data_len);
		rc = bdev_scsi_inquiry(bdev, task, cdb, data, data_len);
		data_len = spdk_min(rc, data_len);
		if (rc < 0) {
			break;
@@ -1840,7 +1842,7 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
		SPDK_DEBUGLOG(SPDK_LOG_SCSI, "sel=%x\n", sel);

		alloc_len = from_be32(&cdb[6]);
		rc = spdk_bdev_scsi_check_len(task, alloc_len, 16);
		rc = bdev_scsi_check_len(task, alloc_len, 16);
		if (rc < 0) {
			break;
		}
@@ -1848,7 +1850,7 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
		data_len = spdk_max(4096, alloc_len);
		data = spdk_dma_zmalloc(data_len, 0, NULL);
		assert(data != NULL);
		rc = spdk_bdev_scsi_report_luns(task->lun, sel, data, data_len);
		rc = bdev_scsi_report_luns(task->lun, sel, data, data_len);
		data_len = rc;
		if (rc < 0) {
			spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
@@ -1878,7 +1880,7 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
			break;
		}

		rc = spdk_bdev_scsi_check_len(task, pllen, md);
		rc = bdev_scsi_check_len(task, pllen, md);
		if (rc < 0) {
			break;
		}
@@ -1890,13 +1892,13 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)

		data_len = rc;
		if (cdb[0] == SPDK_SPC_MODE_SELECT_6) {
			rc = spdk_bdev_scsi_check_len(task, data_len, 4);
			rc = bdev_scsi_check_len(task, data_len, 4);
			if (rc >= 0) {
				bdlen = data[3];
			}

		} else {
			rc = spdk_bdev_scsi_check_len(task, data_len, 8);
			rc = bdev_scsi_check_len(task, data_len, 8);
			if (rc >= 0) {
				bdlen = from_be16(&data[6]);
			}
@@ -1909,7 +1911,7 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
		sp = !!(cdb[1] & 0x1);

		/* page data */
		rc = spdk_bdev_scsi_mode_select_page(
		rc = bdev_scsi_mode_select_page(
			     bdev, cdb,
			     pf, sp,
			     &data[md + bdlen],
@@ -1945,7 +1947,7 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
		subpage = cdb[3];

		/* First call with no buffer to discover needed buffer size */
		rc = spdk_bdev_scsi_mode_sense(bdev, md,
		rc = bdev_scsi_mode_sense(bdev, md,
					  cdb, dbd, llba, pc,
					  page, subpage,
					  NULL, task);
@@ -1958,7 +1960,7 @@ spdk_bdev_scsi_process_primary(struct spdk_scsi_task *task)
		assert(data != NULL);

		/* First call with no buffer to discover needed buffer size */
		rc = spdk_bdev_scsi_mode_sense(bdev, md,
		rc = bdev_scsi_mode_sense(bdev, md,
					  cdb, dbd, llba, pc,
					  page, subpage,
					  data, task);
@@ -2058,8 +2060,8 @@ spdk_bdev_scsi_execute(struct spdk_scsi_task *task)
{
	int rc;

	if ((rc = spdk_bdev_scsi_process_block(task)) == SPDK_SCSI_TASK_UNKNOWN) {
		if ((rc = spdk_bdev_scsi_process_primary(task)) == SPDK_SCSI_TASK_UNKNOWN) {
	if ((rc = bdev_scsi_process_block(task)) == SPDK_SCSI_TASK_UNKNOWN) {
		if ((rc = bdev_scsi_process_primary(task)) == SPDK_SCSI_TASK_UNKNOWN) {
			SPDK_DEBUGLOG(SPDK_LOG_SCSI, "unsupported SCSI OP=0x%x\n", task->cdb[0]);
			/* INVALID COMMAND OPERATION CODE */
			spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
@@ -2074,7 +2076,7 @@ spdk_bdev_scsi_execute(struct spdk_scsi_task *task)
}

static void
spdk_bdev_scsi_reset_resubmit(void *arg)
bdev_scsi_reset_resubmit(void *arg)
{
	struct spdk_scsi_task *task = arg;

@@ -2087,10 +2089,10 @@ spdk_bdev_scsi_reset(struct spdk_scsi_task *task)
	struct spdk_scsi_lun *lun = task->lun;
	int rc;

	rc = spdk_bdev_reset(lun->bdev_desc, lun->io_channel, spdk_bdev_scsi_task_complete_reset,
	rc = spdk_bdev_reset(lun->bdev_desc, lun->io_channel, bdev_scsi_task_complete_reset,
			     task);
	if (rc == -ENOMEM) {
		spdk_bdev_scsi_queue_io(task, spdk_bdev_scsi_reset_resubmit, task);
		bdev_scsi_queue_io(task, bdev_scsi_reset_resubmit, task);
	}
}

+5 −5
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@
#include "spdk/util.h"

static void
spdk_scsi_task_free_data(struct spdk_scsi_task *task);
scsi_task_free_data(struct spdk_scsi_task *task);

void
spdk_scsi_task_put(struct spdk_scsi_task *task)
@@ -56,7 +56,7 @@ spdk_scsi_task_put(struct spdk_scsi_task *task)
			spdk_bdev_free_io(bdev_io);
		}

		spdk_scsi_task_free_data(task);
		scsi_task_free_data(task);

		task->free_fn(task);
	}
@@ -85,7 +85,7 @@ spdk_scsi_task_construct(struct spdk_scsi_task *task,
}

static void
spdk_scsi_task_free_data(struct spdk_scsi_task *task)
scsi_task_free_data(struct spdk_scsi_task *task)
{
	if (task->alloc_len != 0) {
		spdk_dma_free(task->iov.iov_base);
@@ -97,7 +97,7 @@ spdk_scsi_task_free_data(struct spdk_scsi_task *task)
}

static void *
spdk_scsi_task_alloc_data(struct spdk_scsi_task *task, uint32_t alloc_len)
scsi_task_alloc_data(struct spdk_scsi_task *task, uint32_t alloc_len)
{
	assert(task->alloc_len == 0);

@@ -122,7 +122,7 @@ spdk_scsi_task_scatter_data(struct spdk_scsi_task *task, const void *src, size_t
	}

	if (task->iovcnt == 1 && iovs[0].iov_base == NULL) {
		spdk_scsi_task_alloc_data(task, buf_len);
		scsi_task_alloc_data(task, buf_len);
		iovs[0] = task->iov;
	}

+2 −2
Original line number Diff line number Diff line
@@ -525,7 +525,7 @@ lun_reset_task_wait_scsi_task_complete(void)
	CU_ASSERT(lun->reset_poller != NULL);

	/* Execute the poller to check if the task prior to the reset task complete. */
	spdk_scsi_lun_reset_check_outstanding_tasks(&mgmt_task);
	scsi_lun_reset_check_outstanding_tasks(&mgmt_task);

	CU_ASSERT(!TAILQ_EMPTY(&lun->mgmt_tasks));
	CU_ASSERT(lun->reset_poller != NULL);
@@ -536,7 +536,7 @@ lun_reset_task_wait_scsi_task_complete(void)
	CU_ASSERT(TAILQ_EMPTY(&lun->tasks));

	/* Execute the poller to check if the task prior to the reset task complete. */
	spdk_scsi_lun_reset_check_outstanding_tasks(&mgmt_task);
	scsi_lun_reset_check_outstanding_tasks(&mgmt_task);

	CU_ASSERT(TAILQ_EMPTY(&lun->mgmt_tasks));
	CU_ASSERT(lun->reset_poller == NULL);
Loading