nvdimm: improve diagnosibility of namespaces
authorDmitry Krivenok <krivenok.dmitry@gmail.com>
Tue, 1 Dec 2015 21:48:12 +0000 (00:48 +0300)
committerDan Williams <dan.j.williams@intel.com>
Wed, 9 Dec 2015 00:27:30 +0000 (16:27 -0800)
commitbd26d0d0ce7434a86dde61a7c65c94fe3801d8f6
tree3dd255a6a7b645b098dd5e8fb2977e353a6c569a
parent527e9316f8ec44bd53d90fb9f611fa7ffff52bb9
nvdimm: improve diagnosibility of namespaces

In order to bind namespace to the driver user must first
set all mandatory attributes in the following order:
- uuid
- size
- sector_size (for blk namespace only)

If the order is wrong, then user either won't be able to set
the attribute or bind the namespace.

This simple patch improves diagnosibility of common operations
with namespaces by printing some details about the error
instead of failing silently.

Below are examples of error messages (assuming dyndbg is
enabled for nvdimms):

[/]# echo 4194304 > /sys/bus/nd/devices/region5/namespace5.0/size
[  288.372612] nd namespace5.0: __size_store: uuid not set
[  288.374839] nd namespace5.0: size_store: 400000 fail (-6)
sh: write error: No such device or address
[/]#

[/]# echo namespace5.0 > /sys/bus/nd/drivers/nd_blk/bind
[  554.671648] nd_blk namespace5.0: nvdimm_namespace_common_probe: sector size not set
[  554.674688]  ndbus1: nd_blk.probe(namespace5.0) = -19
sh: write error: No such device
[/]#

Signed-off-by: Dmitry V. Krivenok <krivenok.dmitry@gmail.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/namespace_devs.c