Re: [PATCH 07/13] RFC: pnfs: full mount/umount infrastructure

Boaz Harrosh
2010-09-13T11:06:56Z

On 09/10/2010 10:23 PM, Trond Myklebust wrote:
> On Thu, 2010-09-02 at 14:00 -0400, Fred Isaman wrote:
>>
>> /* Unitialize a mountpoint in a layout driver */
>> void
>> unset_pnfs_layoutdriver(struct nfs_server *nfss)
>> {
>> + if (nfss->pnfs_curr_ld)
>> + nfss->pnfs_curr_ld->ld_io_ops->uninitialize_mountpoint(nfss->nfs_client);
>
> That 'uninitialize_mountpoint' name doesn't make any sense. The
> nfs_client parameter isn't associated to a particular mountpoint.
>

Me two BTW.
I will later need a per super-block resources, mainly slabs and work_q.
The above is used for two things:
one - Per-client but after the layout-type is known which comes after first
mount. (For the device cache)
Two - Per server (per mount) which will be used by objects later on.
(I think that there is an if somewhere that make this call only
once per client, right?)

I think we should just pass nfss to the LD and let it take care of accessing
nfss->nfs_client for the device cache. (It is done so later in the tree, right?)

Boaz
>> nfss->pnfs_curr_ld = NULL;
>> }
>>
>> @@ -68,6 +100,12 @@ set_pnfs_layoutdriver(struct nfs_server *server, u32 id)
>> goto out_no_driver;
>> }
>> }
>> + if (ld_type->ld_io_ops->initialize_mountpoint(server->nfs_client)) {
>
> Ditto.
>