]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme: use block-count arg if provided
authorDaniel Wagner <dwagner@suse.de>
Wed, 11 Oct 2023 12:29:52 +0000 (14:29 +0200)
committerKeith Busch <kbusch@kernel.org>
Wed, 11 Oct 2023 14:13:39 +0000 (08:13 -0600)
When the user provides the --block-count argument use this value and
don't be clever and try to calculate the value. This is not what
the user asked us to do.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
nvme.c

diff --git a/nvme.c b/nvme.c
index 968214ac5bc808849fc67c90414d6293b4a02f9c..2549f4b18f6cecac9443288b0032380e1366335c 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -7306,11 +7306,16 @@ static int submit_io(int opcode, char *command, const char *desc, int argc, char
        else
                buffer_size = cfg.data_size;
 
-       /* Get the required block count. Note this is a zeroes based value. */
-       nblocks = ((buffer_size + (logical_block_size - 1)) / logical_block_size) - 1;
+       if (argconfig_parse_seen(opts, "block-count")) {
+               /* Use the value provided */
+               nblocks = cfg.block_count;
+       } else {
+               /* Get the required block count. Note this is a zeroes based value. */
+               nblocks = ((buffer_size + (logical_block_size - 1)) / logical_block_size) - 1;
 
-       /* Update the data size based on the required block count */
-       buffer_size = (nblocks + 1) * logical_block_size;
+               /* Update the data size based on the required block count */
+               buffer_size = (nblocks + 1) * logical_block_size;
+       }
 
        buffer = nvme_alloc_huge(buffer_size, &huge);
        if (!buffer) {