[Libguestfs] [nbdkit PATCH 1/2] rust: Implement can_cache
Richard W.M. Jones
rjones at redhat.com
Fri Aug 16 17:26:38 UTC 2019
On Fri, Aug 16, 2019 at 12:08:10PM -0500, Eric Blake wrote:
> Implementing extents requires some coordination for the Rust code to
> call back into libnbdkit; I'm not familiar with Rust enough to do
> that. But with placeholders for those slots, implementing
> can_cache/cache is trivial. This improves the situation mentioned in
> commit 031fae85.
>
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
> plugins/rust/nbdkit-rust-plugin.pod | 10 ++++++++++
> plugins/rust/src/lib.rs | 13 +++++++++++++
> 2 files changed, 23 insertions(+)
>
> diff --git a/plugins/rust/nbdkit-rust-plugin.pod b/plugins/rust/nbdkit-rust-plugin.pod
> index db2a55ee..930829cc 100644
> --- a/plugins/rust/nbdkit-rust-plugin.pod
> +++ b/plugins/rust/nbdkit-rust-plugin.pod
> @@ -90,6 +90,16 @@ thread models, see L<nbdkit-plugin(3)/THREADS>.
>
> =back
>
> +=head2 Missing callbacks
> +
> +=over 4
> +
> +=item Missing: C<can_extents> and C<extents>
> +
> +These are not yet supported.
> +
> +=back
> +
> =head1 SEE ALSO
>
> L<nbdkit(1)>,
> diff --git a/plugins/rust/src/lib.rs b/plugins/rust/src/lib.rs
> index a3dbf43e..25af2fe6 100644
> --- a/plugins/rust/src/lib.rs
> +++ b/plugins/rust/src/lib.rs
> @@ -93,6 +93,15 @@ pub struct Plugin {
> pub magic_config_key: *const c_char,
>
> pub can_multi_conn: Option<extern fn (h: *mut c_void) -> c_int>,
> +
> + // Slots for extents functions, which needs more integration.
> + _can_extents: Option<extern fn ()>,
> + _extents: Option<extern fn ()>,
> +
> + pub can_cache: Option<extern fn (h: *mut c_void) -> c_int>,
> + pub cache: Option<extern fn (h: *mut c_void,
> + count: u32, offset: u64,
> + flags: u32) -> c_int>,
> }
>
> pub enum ThreadModel {
> @@ -146,6 +155,10 @@ impl Plugin {
> zero: None,
> magic_config_key: std::ptr::null(),
> can_multi_conn: None,
> + _can_extents: None,
> + _extents: None,
> + can_cache: None,
> + cache: None,
> }
> }
> }
This one seems straightforward, so ACK.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top
More information about the Libguestfs
mailing list