美文网首页
nfs-ganesha - Session

nfs-ganesha - Session

作者: 帆子_8c3a | 来源:发表于2019-03-25 16:11 被阅读0次

    1. EXCHANGE_ID - 创建client id

    封装在nfs4_op_exchange_id中。

    1. 调用get_client_record函数,将NFS client传进来的co_ownerid创建nfs_client_record_t。主要是填充其中的cr_unconfirmed_rec部分。
    2. 调用create_client_id,分配client id,创建client owner等。

    1.1 nfs_client_record_t

    struct nfs_client_record_t {
    ...
        nfs_client_id_t *cr_confirmed_rec; //confirm
        nfs_client_id_t *cr_unconfirmed_rec;//unconfirm
    ...
    }
    
    struct nfs_client_id_t {
        clientid4 cid_clientid; //clientid
        verifier4 cid_verifier; //verifier,重启后会变化
    ...
        state_owner_t cid_owner; //client owner
        struct glist_head cid_openowners;   //open owner list
        struct glist_head cid_lockowners;   //lock owners list
        pthread_mutex_t cid_mutex;
    ...
        struct gsh_client *gsh_client; //
    };
    

    2. CREATE_SESSION - confirm client id

    封装在nfs4_op_create_session中。

    1. 通过nfs_client_id_get_unconfirmed,通过clientid得到unconfirmed的nfs_client_id_t,即EXCHANGE_ID时候创建的。
    2. 创建nfs41_session对象,为session分配slot
    3. 创建session id
    4. nfs_client_record_t中的cr_unconfirmed_rec抹去,填上cr_confirmed_rec

    相关文章

      网友评论

          本文标题:nfs-ganesha - Session

          本文链接:https://www.haomeiwen.com/subject/omfbvqtx.html