diff options
Diffstat (limited to 'xlators/nfs/server/src/nfs.h')
-rw-r--r-- | xlators/nfs/server/src/nfs.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/xlators/nfs/server/src/nfs.h b/xlators/nfs/server/src/nfs.h index baee0ce0f6a..6e6b433ce66 100644 --- a/xlators/nfs/server/src/nfs.h +++ b/xlators/nfs/server/src/nfs.h @@ -58,20 +58,37 @@ struct nfs_initer_list { rpcsvc_program_t *program; }; +typedef enum { + GF_NFS_SUBVOLUME_NOTSTARTED = 1, + GF_NFS_SUBVOLUME_LOOKUPSENT, + GF_NFS_SUBVOLUME_STARTED, +} nfs_subvolume_status_t; + +struct nfs_subvolume { + xlator_t *subvol; + nfs_subvolume_status_t status; +}; + +#define gf_nfs_subvolume_started(svl) ((svl)->status == GF_NFS_SUBVOLUME_STARTED) +#define gf_nfs_subvolume_lookupsent(svl) ((svl)->status == GF_NFS_SUBVOLUME_LOOKUPSENT) +#define gf_nfs_subvolume_notstarted(svl) ((svl)->status == GF_NFS_SUBVOLUME_NOTSTARTED) + +#define gf_nfs_subvolume_unused_slot(svl) ((svl)->subvol == NULL) +#define gf_nfs_all_subvolumes_started(nf) ((nf->upsubvols == nf->allsubvols) && (!nf->subvols_started)) struct nfs_state { rpcsvc_t *rpcsvc; struct list_head versions; struct mem_pool *foppool; unsigned int memfactor; - xlator_list_t *subvols; gf_lock_t svinitlock; int allsubvols; int upsubvols; - xlator_t **initedxl; + struct nfs_subvolume *subvols; int subvols_started; int dynamicvolumes; + xlator_t *nfsx; }; #define gf_nfs_dvm_on(nfsstt) (((struct nfs_state *)nfsstt)->dynamicvolumes == GF_NFS_DVM_ON) |