Since I went through and resolved refcount issues with fsal_pnfs_ds (that
were exposed when I looked at all the export refcounting), I notice that
there's code for DS only mode, but I'm not sure how it actually works.
FSAL_GLUSTER, FSAL_GPFS, and FSAL_LIZARDFS are all set up to associate a
fsal_pnfs_ds with an export.
FSAL_CEPG seems to be set up to use the DS only mode, which does NOT
associate an export with a fsal_pnfs_ds. But then how does, for example
FSAL_CEPH's ds_read method supposed to work? It immediately de-references
op_ctx->fsal_export which will be NULL if called with a Ceph DS handle.
Another issue is the processing for the DS config block makes no check about
the FSAL specified, so you could configure:
DS {
Number = 1;
FSAL {
Name = GPFS;
}
}
Which probably will go badly in some way.
I suspect the config processing should try and determine if the FSAL
actually supports DS only mode.
Frank