This patch adds a module parameter to configure the REQ_OP_DISCARD handling support when null_blk module is not memory-backed. This support is useful in the various scenarios such as examining REQ_OP_DISCARD path tests, blktrace and discard with priorities. Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx> --- drivers/block/null_blk_main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/block/null_blk_main.c b/drivers/block/null_blk_main.c index 99328ded60d1..20d60b951622 100644 --- a/drivers/block/null_blk_main.c +++ b/drivers/block/null_blk_main.c @@ -3,6 +3,7 @@ * Add configfs and memory store: Kyungchan Koh <kkc6196@xxxxxx> and * Shaohua Li <shli@xxxxxx> */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include <linux/module.h> #include <linux/moduleparam.h> @@ -193,6 +194,10 @@ static unsigned int g_zone_nr_conv; module_param_named(zone_nr_conv, g_zone_nr_conv, uint, 0444); MODULE_PARM_DESC(zone_nr_conv, "Number of conventional zones when block device is zoned. Default: 0"); +static bool g_discard; +module_param_named(discard, g_discard, bool, 0444); +MODULE_PARM_DESC(discard, "Allow REQ_OP_DISCARD processing. Default: false"); + static struct nullb_device *null_alloc_dev(void); static void null_free_dev(struct nullb_device *dev); static void null_del_dev(struct nullb *nullb); @@ -529,6 +534,8 @@ static struct nullb_device *null_alloc_dev(void) dev->zoned = g_zoned; dev->zone_size = g_zone_size; dev->zone_nr_conv = g_zone_nr_conv; + dev->discard = g_discard; + pr_info("discard : %s\n", dev->discard ? "TRUE" : "FALSE"); return dev; } -- 2.17.0