If the kernel is built without CONFIG_BLK_DEV_ZONED, a modprobe of the null_blk driver with zoned=1 fails with 'Invalid argument'. This can be confusing to users, prompting a search as to why the parameter is invalid. To assist in that search, add a bit more information to the failure, additionally adding to the documentation that CONFIG_BLK_DEV_ZONED is needed for zoned=1. Signed-off-by: John Pittman <jpittman@redhat.com> --- Documentation/block/null_blk.txt | 3 ++- drivers/block/null_blk.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/block/null_blk.txt b/Documentation/block/null_blk.txt index ea2dafe49ae8..4cad1024fff7 100644 --- a/Documentation/block/null_blk.txt +++ b/Documentation/block/null_blk.txt @@ -88,7 +88,8 @@ shared_tags=[0/1]: Default: 0 zoned=[0/1]: Default: 0 0: Block device is exposed as a random-access block device. - 1: Block device is exposed as a host-managed zoned block device. + 1: Block device is exposed as a host-managed zoned block device. Requires + CONFIG_BLK_DEV_ZONED. zone_size=[MB]: Default: 256 Per zone size when exposed as a zoned block device. Must be a power of two. diff --git a/drivers/block/null_blk.h b/drivers/block/null_blk.h index b3df2793e7cd..cab4808f14bd 100644 --- a/drivers/block/null_blk.h +++ b/drivers/block/null_blk.h @@ -97,6 +97,7 @@ void null_zone_reset(struct nullb_cmd *cmd, sector_t sector); #else static inline int null_zone_init(struct nullb_device *dev) { + pr_err("CONFIG_BLK_DEV_ZONED not enabled\n"); return -EINVAL; } static inline void null_zone_exit(struct nullb_device *dev) {} -- 2.17.2
On Fri, 2019-01-04 at 12:06 -0500, John Pittman wrote:
> If the kernel is built without CONFIG_BLK_DEV_ZONED, a modprobe
> of the null_blk driver with zoned=1 fails with 'Invalid argument'.
> This can be confusing to users, prompting a search as to why the
> parameter is invalid. To assist in that search, add a bit more
> information to the failure, additionally adding to the documentation
> that CONFIG_BLK_DEV_ZONED is needed for zoned=1.
>
> Signed-off-by: John Pittman <jpittman@redhat.com>
> ---
> Documentation/block/null_blk.txt | 3 ++-
> drivers/block/null_blk.h | 1 +
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/block/null_blk.txt b/Documentation/block/null_blk.txt
> index ea2dafe49ae8..4cad1024fff7 100644
> --- a/Documentation/block/null_blk.txt
> +++ b/Documentation/block/null_blk.txt
> @@ -88,7 +88,8 @@ shared_tags=[0/1]: Default: 0
>
> zoned=[0/1]: Default: 0
> 0: Block device is exposed as a random-access block device.
> - 1: Block device is exposed as a host-managed zoned block device.
> + 1: Block device is exposed as a host-managed zoned block device. Requires
> + CONFIG_BLK_DEV_ZONED.
>
> zone_size=[MB]: Default: 256
> Per zone size when exposed as a zoned block device. Must be a power of two.
> diff --git a/drivers/block/null_blk.h b/drivers/block/null_blk.h
> index b3df2793e7cd..cab4808f14bd 100644
> --- a/drivers/block/null_blk.h
> +++ b/drivers/block/null_blk.h
> @@ -97,6 +97,7 @@ void null_zone_reset(struct nullb_cmd *cmd, sector_t sector);
> #else
> static inline int null_zone_init(struct nullb_device *dev)
> {
> + pr_err("CONFIG_BLK_DEV_ZONED not enabled\n");
> return -EINVAL;
> }
> static inline void null_zone_exit(struct nullb_device *dev) {}
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Jens, Bart, It occurred to me just now that on the pr_err() message,
"null_blk: CONFIG_BLK_DEV_ZONED not enabled" is a little better
than "CONFIG_BLK_DEV_ZONED not enabled". It was my intent
to include that 'null_blk:', but it slipped my mind at the last moment.
On Fri, Jan 4, 2019 at 4:49 PM Bart Van Assche <bvanassche@acm.org> wrote:
>
> On Fri, 2019-01-04 at 12:06 -0500, John Pittman wrote:
> > If the kernel is built without CONFIG_BLK_DEV_ZONED, a modprobe
> > of the null_blk driver with zoned=1 fails with 'Invalid argument'.
> > This can be confusing to users, prompting a search as to why the
> > parameter is invalid. To assist in that search, add a bit more
> > information to the failure, additionally adding to the documentation
> > that CONFIG_BLK_DEV_ZONED is needed for zoned=1.
> >
> > Signed-off-by: John Pittman <jpittman@redhat.com>
> > ---
> > Documentation/block/null_blk.txt | 3 ++-
> > drivers/block/null_blk.h | 1 +
> > 2 files changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/block/null_blk.txt b/Documentation/block/null_blk.txt
> > index ea2dafe49ae8..4cad1024fff7 100644
> > --- a/Documentation/block/null_blk.txt
> > +++ b/Documentation/block/null_blk.txt
> > @@ -88,7 +88,8 @@ shared_tags=[0/1]: Default: 0
> >
> > zoned=[0/1]: Default: 0
> > 0: Block device is exposed as a random-access block device.
> > - 1: Block device is exposed as a host-managed zoned block device.
> > + 1: Block device is exposed as a host-managed zoned block device. Requires
> > + CONFIG_BLK_DEV_ZONED.
> >
> > zone_size=[MB]: Default: 256
> > Per zone size when exposed as a zoned block device. Must be a power of two.
> > diff --git a/drivers/block/null_blk.h b/drivers/block/null_blk.h
> > index b3df2793e7cd..cab4808f14bd 100644
> > --- a/drivers/block/null_blk.h
> > +++ b/drivers/block/null_blk.h
> > @@ -97,6 +97,7 @@ void null_zone_reset(struct nullb_cmd *cmd, sector_t sector);
> > #else
> > static inline int null_zone_init(struct nullb_device *dev)
> > {
> > + pr_err("CONFIG_BLK_DEV_ZONED not enabled\n");
> > return -EINVAL;
> > }
> > static inline void null_zone_exit(struct nullb_device *dev) {}
>
> Reviewed-by: Bart Van Assche <bvanassche@acm.org>
>
On 1/5/19 5:44 AM, John Pittman wrote:
> Jens, Bart, It occurred to me just now that on the pr_err() message,
> "null_blk: CONFIG_BLK_DEV_ZONED not enabled" is a little better
> than "CONFIG_BLK_DEV_ZONED not enabled". It was my intent
> to include that 'null_blk:', but it slipped my mind at the last moment.
I applied it just now, and added the prefix to the error message.
--
Jens Axboe