Re: [Qemu-devel] [PATCH] nbd/server: fix bitmap export

2018-09-14 Thread Eric Blake
On 9/14/18 12:24 PM, Eric Blake wrote: On 9/14/18 11:51 AM, Vladimir Sementsov-Ogievskiy wrote: bitmap_to_extents function is broken: it switches dirty variable after every iteration, however it can process only part of dirty (or zero) area during one iteration in case when this area is too larg

Re: [Qemu-devel] [PATCH] nbd/server: fix bitmap export

2018-09-14 Thread Vladimir Sementsov-Ogievskiy
14.09.2018 20:35, Eric Blake wrote: On 9/14/18 12:30 PM, Vladimir Sementsov-Ogievskiy wrote:   while (begin < overall_end && i < nb_extents) { +    bool next_dirty = !dirty; +   if (dirty) {   end = bdrv_dirty_bitmap_next_zero(bitmap, begin);   } else { @@ -1

Re: [Qemu-devel] [PATCH] nbd/server: fix bitmap export

2018-09-14 Thread Vladimir Sementsov-Ogievskiy
14.09.2018 20:30, Vladimir Sementsov-Ogievskiy wrote: 14.09.2018 20:24, Eric Blake wrote: On 9/14/18 11:51 AM, Vladimir Sementsov-Ogievskiy wrote: bitmap_to_extents function is broken: it switches dirty variable after every iteration, however it can process only part of dirty (or zero) area dur

Re: [Qemu-devel] [PATCH] nbd/server: fix bitmap export

2018-09-14 Thread Eric Blake
On 9/14/18 12:30 PM, Vladimir Sementsov-Ogievskiy wrote:   while (begin < overall_end && i < nb_extents) { +    bool next_dirty = !dirty; +   if (dirty) {   end = bdrv_dirty_bitmap_next_zero(bitmap, begin);   } else { @@ -1962,6 +1964,7 @@ static unsigned int

Re: [Qemu-devel] [PATCH] nbd/server: fix bitmap export

2018-09-14 Thread Vladimir Sementsov-Ogievskiy
14.09.2018 20:24, Eric Blake wrote: On 9/14/18 11:51 AM, Vladimir Sementsov-Ogievskiy wrote: bitmap_to_extents function is broken: it switches dirty variable after every iteration, however it can process only part of dirty (or zero) area during one iteration in case when this area is too large f

Re: [Qemu-devel] [PATCH] nbd/server: fix bitmap export

2018-09-14 Thread Eric Blake
On 9/14/18 11:51 AM, Vladimir Sementsov-Ogievskiy wrote: bitmap_to_extents function is broken: it switches dirty variable after every iteration, however it can process only part of dirty (or zero) area during one iteration in case when this area is too large for one extent. Fortunately, the bug

[Qemu-devel] [PATCH] nbd/server: fix bitmap export

2018-09-14 Thread Vladimir Sementsov-Ogievskiy
bitmap_to_extents function is broken: it switches dirty variable after every iteration, however it can process only part of dirty (or zero) area during one iteration in case when this area is too large for one extent. Fortunately, the bug don't produce wrong extents: it just inserts zero-length ex