All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: Ming Lei <ming.lei@redhat.com>, Greg Edwards <gedwards@ddn.com>,
	Hannes Reinecke <hare@suse.com>,
	linux-block@vger.kernel.org,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Jens Axboe <axboe@kernel.dk>,
	Bart Van Assche <bvanassche@acm.org>,
	Marcos Paulo de Souza <marcos.souza.org@gmail.com>,
	Omar Sandoval <osandov@fb.com>,
	Damien Le Moal <damien.lemoal@wdc.com>
Subject: [RFC PATCH 1/2] blkdev.h: Introduce size_to_sectors hlper function
Date: Sun, 21 Apr 2019 00:53:27 -0300	[thread overview]
Message-ID: <20190421035328.19322-2-marcos.souza.org@gmail.com> (raw)
In-Reply-To: <20190421035328.19322-1-marcos.souza.org@gmail.com>

This function takes an argument to specify the size of a block device,
in bytes, and return the number of sectors of 512 bytes.

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
---
 include/linux/blkdev.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 317ab30d2904..7bf7b99161b7 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -871,6 +871,24 @@ static inline struct request_queue *bdev_get_queue(struct block_device *bdev)
 #define SECTOR_SIZE (1 << SECTOR_SHIFT)
 #endif
 
+/**
+ * size_to_sectors - Convert size in bytes to number of sectors of 512 bytes
+ * @size: size in bytes to be converted to sectors
+ *
+ * Description:
+ * Kernel I/O operation are always made in "sectors". In order to set the
+ * correct number of sectors for a given number of bytes, we need to group the
+ * number of bytes in "sectors of 512 bytes" by shifting the size value by 9,
+ * which is the same than dividing the size by 512. For example, for a capacity
+ * of 32M (33554432 bytes), the number of sectors will be 65536.
+ *
+ * Returns the number of sectors by the given number of bytes.
+ */
+static inline sector_t size_to_sectors(long long size)
+{
+	return size >> SECTOR_SHIFT;
+}
+
 /*
  * blk_rq_pos()			: the current sector
  * blk_rq_bytes()		: bytes left in the entire request
-- 
2.16.4


  reply	other threads:[~2019-04-21  3:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-21  3:53 [RFC PATCH 0/2] Introduce size_to_sectors helper in blkdev.h Marcos Paulo de Souza
2019-04-21  3:53 ` Marcos Paulo de Souza [this message]
2019-04-21 17:39   ` [RFC PATCH 1/2] blkdev.h: Introduce size_to_sectors hlper function Chaitanya Kulkarni
2019-04-21  3:53 ` [RFC PATCH 2/2] null_blk: Make use of size_to_sectors helper Marcos Paulo de Souza
2019-04-21 17:42   ` Chaitanya Kulkarni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190421035328.19322-2-marcos.souza.org@gmail.com \
    --to=marcos.souza.org@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=damien.lemoal@wdc.com \
    --cc=gedwards@ddn.com \
    --cc=hare@suse.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=ming.lei@redhat.com \
    --cc=osandov@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.