[Libguestfs] [PATCH nbdkit] New ondemand plugin.

Eric Blake eblake at redhat.com
Sat Aug 15 21:21:43 UTC 2020


On 8/15/20 4:13 PM, Richard W.M. Jones wrote:

>>> +/* Because we rewind the exportsdir handle, we need a lock to protect
>>> + * list_exports from being called in parallel.
>>> + */
>>> +static pthread_mutex_t exports_lock = PTHREAD_MUTEX_INITIALIZER;
>>
>> An alternative is to diropen() each time .list_exports gets called.
>> Either way should work, though.
> 
> diropen == opendir?

Oops, yeah.

> 
>> I still have some pending patches to improve .list_exports (split
>> out a .default_export function, add an is_tls parameter), so there
>> may be some churn in this area (for that matter, I have not yet
>> pushed my patches for .list_exports in the file plugin, because I
>> was trying to minimize churn while working on pending patches).
>> We'll just have to see how it goes; I don't mind rebasing.
> 
> Right - this is indeed one major reason I sent this for review - it's
> a new plugin which integrally uses list_exports.
> 

Okay, once my libnbd stuff settles, I'll be able to get back to 
finalizing how the .list_exports stuff should work in nbdkit.

>>> +/* Since clients that want multi-conn should all pass the same export
>>> + * name, this is safe.
>>> + */
>>> +static int
>>> +ondemand_can_multi_conn (void *handle)
>>> +{
>>> +  return 1;
>>> +}
>>
>> Hmm. Are you permitting multiple clients to the same export, or did
>> you decide that was too likely to cause fs corruption, and locking
>> out users on the same export?  The docs above said otherwise, making
>> this look wrong.
> 
> So I think this is wrong because my locking implementation will
> prevent the (single) client from connecting multiple times.  That's a
> bug: we should allow the same client to connect multiple times, which
> I believe is safe.  However that requires client UUID ...
> 

Hence your protocol enhancement proposal.  Yeah, letting a client tell 
the server during handshaking about both UUID and intent to be read-only 
vs. read-write are now seeming more worthwhile.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




More information about the Libguestfs mailing list