diff options
Diffstat (limited to 'xlators/protocol/server/src/server.c')
| -rw-r--r-- | xlators/protocol/server/src/server.c | 29 | 
1 files changed, 17 insertions, 12 deletions
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c index cb2a0f6c1d9..75b208c98c0 100644 --- a/xlators/protocol/server/src/server.c +++ b/xlators/protocol/server/src/server.c @@ -1176,16 +1176,17 @@ fini (xlator_t *this)  int  server_process_event_upcall (xlator_t *this, void *data)  { -        int              ret          = -1; -        server_conf_t    *conf        = NULL; -        client_t         *client      = NULL; -        char             *client_uid  = NULL; -        struct gf_upcall *upcall_data = NULL; -        void             *up_req      = NULL; -        rpc_transport_t  *xprt        = NULL; -        enum gf_cbk_procnum cbk_procnum          = GF_CBK_NULL; -        gfs3_cbk_cache_invalidation_req gf_c_req = {0,}; -        xdrproc_t        xdrproc; +        int                             ret         = -1; +        server_conf_t                  *conf        = NULL; +        client_t                       *client      = NULL; +        char                           *client_uid  = NULL; +        struct gf_upcall               *upcall_data = NULL; +        void                           *up_req      = NULL; +        rpc_transport_t                *xprt        = NULL; +        enum gf_cbk_procnum             cbk_procnum     = GF_CBK_NULL; +        gfs3_cbk_cache_invalidation_req gf_c_req        = {0,}; +        gfs3_recall_lease_req           gf_recall_lease = {{0,},}; +        xdrproc_t                       xdrproc;          GF_VALIDATE_OR_GOTO(this->name, data, out); @@ -1193,9 +1194,7 @@ server_process_event_upcall (xlator_t *this, void *data)          GF_VALIDATE_OR_GOTO(this->name, conf, out);          upcall_data = (struct gf_upcall *)data; -          client_uid = upcall_data->client_uid; -          GF_VALIDATE_OR_GOTO(this->name, client_uid, out);          switch (upcall_data->event_type) { @@ -1207,6 +1206,12 @@ server_process_event_upcall (xlator_t *this, void *data)                  cbk_procnum = GF_CBK_CACHE_INVALIDATION;                  xdrproc = (xdrproc_t)xdr_gfs3_cbk_cache_invalidation_req;                  break; +        case GF_UPCALL_RECALL_LEASE: +                gf_proto_recall_lease_from_upcall (&gf_recall_lease, upcall_data); +                up_req = &gf_recall_lease; +                cbk_procnum = GF_CBK_RECALL_LEASE; +                xdrproc = (xdrproc_t)xdr_gfs3_recall_lease_req; +                break;          default:                  gf_msg (this->name, GF_LOG_WARNING, EINVAL,                          PS_MSG_INVALID_ENTRY,  | 
