|
| From: | Paolo Bonzini |
| Subject: | Re: [Qemu-devel] [PATCH] block/iscsi: speed up read for unallocated sectors |
| Date: | Thu, 27 Mar 2014 15:17:41 +0100 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
Il 27/03/2014 14:43, Peter Lieven ha scritto:
+static void iscsi_allocationmap_set(IscsiLun *iscsilun, int64_t sector_num,
+ int nb_sectors)
+{
+ if (!iscsilun->cluster_sectors) {
+ return;
+ }
+ bitmap_set(iscsilun->allocationmap,
+ sector_num / iscsilun->cluster_sectors,
+ DIV_ROUND_UP(nb_sectors, iscsilun->cluster_sectors));
+}
+
+static void iscsi_allocationmap_clear(IscsiLun *iscsilun, int64_t sector_num,
+ int nb_sectors)
+{
+ if (!iscsilun->cluster_sectors) {
+ return;
+ }
+ bitmap_clear(iscsilun->allocationmap,
+ sector_num / iscsilun->cluster_sectors,
+ DIV_ROUND_UP(nb_sectors, iscsilun->cluster_sectors));
+}
+
Here you need to round the other way, because partial clusters are not unmapped:
cluster_num = DIV_ROUND_UP(sector_num, iscsi->cluster_sectors);
nb_clusters = (sector_num + nb_sectors) / iscsi->cluster_sectors
- cluster_num;
bitmap_clear(iscsilun->allocationmap, cluster_num, nb_clusters);
Paolo
| [Prev in Thread] | Current Thread | [Next in Thread] |