Whamcloud - gitweb
LU-14296 lnet: use an unbound cred in kiblnd_resolve_addr() 37/41137/3
authorJohn L. Hammond <jhammond@whamcloud.com>
Tue, 5 Jan 2021 22:08:34 +0000 (16:08 -0600)
committerOleg Drokin <green@whamcloud.com>
Tue, 12 Jan 2021 07:57:44 +0000 (07:57 +0000)
In kiblnd_resolve_addr() call prepare_kernel_cred(NULL) rather than
prepare_creds() to get a cred with unbound capabilities.

Fixes: 1e4bd16acfa ("LU-14006 o2ib: raise bind cap before resolving address")
Signed-off-by: John L. Hammond <jhammond@whamcloud.com>
Change-Id: Ib2500d82aa4eab5590fa95ae73fd75b2ab542bcd
Reviewed-on: https://review.whamcloud.com/41137
Reviewed-by: Amir Shehata <ashehata@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/klnds/o2iblnd/o2iblnd_cb.c

index 055b20b..6bf2b24 100644 (file)
@@ -1317,8 +1317,6 @@ kiblnd_resolve_addr_cap(struct rdma_cm_id *cmid,
         unsigned short port;
         int rc;
 
-       LASSERT(capable(CAP_NET_BIND_SERVICE));
-
         /* allow the port to be reused */
         rc = rdma_set_reuseaddr(cmid, 1);
         if (rc != 0) {
@@ -1344,8 +1342,9 @@ kiblnd_resolve_addr_cap(struct rdma_cm_id *cmid,
                 }
         }
 
-        CERROR("Failed to bind to a free privileged port\n");
-        return rc;
+       CERROR("cannot bind to a free privileged port: rc = %d\n", rc);
+
+       return rc;
 }
 
 static int
@@ -1359,7 +1358,7 @@ kiblnd_resolve_addr(struct rdma_cm_id *cmid,
        int rc;
 
        if (!capable(CAP_NET_BIND_SERVICE)) {
-               new_creds = prepare_creds();
+               new_creds = prepare_kernel_cred(NULL);
                if (!new_creds)
                        return -ENOMEM;