Whamcloud - gitweb
LU-5560 security: send file security context for creates
[fs/lustre-release.git] / lustre / ptlrpc / gss / gss_cli_upcall.c
index d72e1ab..67e7480 100644 (file)
@@ -218,19 +218,19 @@ int ctx_init_parse_reply(struct lustre_msg *msg, int swabbed,
 struct lgssd_ioctl_param {
         int             version;        /* in   */
         int             secid;          /* in   */
-        char           *uuid;           /* in   */
+       char __user    *uuid;           /* in   */
         int             lustre_svc;     /* in   */
         uid_t           uid;            /* in   */
         gid_t           gid;            /* in   */
         long            send_token_size;/* in   */
-        char           *send_token;     /* in   */
+       char __user    *send_token;     /* in   */
         long            reply_buf_size; /* in   */
-        char           *reply_buf;      /* in   */
+       char __user    *reply_buf;      /* in   */
         long            status;         /* out  */
         long            reply_length;   /* out  */
 };
 
-int gss_do_ctx_init_rpc(__user char *buffer, unsigned long count)
+int gss_do_ctx_init_rpc(char __user *buffer, unsigned long count)
 {
         struct obd_import        *imp;
         struct ptlrpc_request    *req;
@@ -282,7 +282,9 @@ int gss_do_ctx_init_rpc(__user char *buffer, unsigned long count)
 
        if (strcmp(obd->obd_type->typ_name, LUSTRE_MDC_NAME) &&
            strcmp(obd->obd_type->typ_name, LUSTRE_OSC_NAME) &&
-           strcmp(obd->obd_type->typ_name, LUSTRE_MGC_NAME)) {
+           strcmp(obd->obd_type->typ_name, LUSTRE_MGC_NAME) &&
+           strcmp(obd->obd_type->typ_name, LUSTRE_LWP_NAME) &&
+           strcmp(obd->obd_type->typ_name, LUSTRE_OSP_NAME)) {
                CERROR("obd %s is not a client device\n", obdname);
                spin_unlock(&obd->obd_dev_lock);
                RETURN(-EINVAL);
@@ -408,10 +410,8 @@ int gss_do_ctx_fini_rpc(struct gss_cli_ctx *gctx)
 
         rc = ptlrpc_request_bufs_pack(req, LUSTRE_OBD_VERSION, SEC_CTX_FINI,
                                       NULL, ctx);
-        if (rc) {
-                ptlrpc_request_free(req);
-                GOTO(out_ref, rc);
-        }
+       if (rc)
+               GOTO(out_ref, rc);
 
         /* fix the user desc */
         if (req->rq_pack_udesc) {