[PATCH 2/5 v2] blk-mq: Support for Open-Channel SSDs

Paul Bolle pebolle at tiscali.nl
Thu Apr 16 02:10:08 PDT 2015


A few things I spotted (while actually fiddling with 3/5).

On Wed, 2015-04-15 at 14:34 +0200, Matias Bjørling wrote:
> index f3dd028..58a8a71 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -221,6 +221,9 @@ static void blk_mq_rq_ctx_init(struct request_queue *q, struct blk_mq_ctx *ctx,
>  	rq->end_io = NULL;
>  	rq->end_io_data = NULL;
>  	rq->next_rq = NULL;
> +#if CONFIG_BLK_DEV_NVM

I think you meant
    #ifdef CONFIG_BLK_DEV_NVM

> +	rq->phys_sector = 0;
> +#endif
>  
>  	ctx->rq_dispatched[rw_is_sync(rw_flags)]++;
>  }

> --- /dev/null
> +++ b/block/blk-nvm.c

> +int nvm_register_target(struct nvm_target_type *tt)
> +{
> +	int ret = 0;
> +
> +	down_write(&_lock);
> +	if (nvm_find_target_type(tt->name))
> +		ret = -EEXIST;
> +	else
> +		list_add(&tt->list, &_targets);
> +	up_write(&_lock);
> +
> +	return ret;
> +}
> +
> +void nvm_unregister_target(struct nvm_target_type *tt)
> +{
> +	if (!tt)
> +		return;
> +
> +	down_write(&_lock);
> +	list_del(&tt->list);
> +	up_write(&_lock);
> +}

Trying to build rrpc.ko I saw this
    WARNING: "nvm_unregister_target" [[...]/drivers/lightnvm/rrpc.ko] undefined!
    WARNING: "nvm_register_target" [[...]/drivers/lightnvm/rrpc.ko] undefined!

So I guess you need to export these two functions too.

> --- a/include/linux/blkdev.h
> +++ b/include/linux/blkdev.h
> @@ -209,6 +209,9 @@ struct request {
>  
>  	/* for bidi */
>  	struct request *next_rq;
> +#if CONFIG_BLK_DEV_NVM

Again, I think
    #ifdef CONFIG_BLK_DEV_NVM

> +	sector_t phys_sector;
> +#endif
>  };
>  
>  static inline unsigned short req_get_ioprio(struct request *req)


Paul Bolle




More information about the Linux-nvme mailing list