[Libguestfs] [PATCH nbdkit] cache, cow: Do not round size down.
Richard W.M. Jones
rjones at redhat.com
Wed Feb 17 15:45:16 UTC 2021
On Wed, Feb 17, 2021 at 08:57:36AM -0600, Eric Blake wrote:
> Do you also want to tweak the sentence in nbdkit-truncate-filter.pod
> that mentions cache and cow filters?
Fixed in my copy.
> > +++ b/filters/cache/blk.c
>
> > int
> > blk_set_size (uint64_t new_size)
> > {
> > - if (bitmap_resize (&bm, new_size) == -1)
> > + size = new_size;
> > +
> > + if (bitmap_resize (&bm, size) == -1)
> > return -1;
> >
> > - if (ftruncate (fd, new_size) == -1) {
> > + if (ftruncate (fd, ROUND_UP (size, blksize)) == -1) {
>
> So the underlying fd is aligned...
>
> > nbdkit_error ("ftruncate: %m");
> > return -1;
> > }
> >
> > - if (lru_set_size (new_size) == -1)
> > + if (lru_set_size (size) == -1)
>
> ...while the lru size is still the original size.
My reading of the bitmap_resize function (which is also used by the
LRU code) is that rounds up, so we're OK here. However the bitmap
code _is_ quite complicated ...
Well, the tests pass anyway :-)
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
More information about the Libguestfs
mailing list