rpc: fix garbage in printk in svc_tcp_accept()
[sfrench/cifs-2.6.git] / net / sunrpc / svcsock.c
index 64b9b8c743c49b67eedc041ba7a90bcf06abb85b..036ab520df21ec5ecea04342e979fc58762aa059 100644 (file)
@@ -131,13 +131,13 @@ static char *__svc_print_addr(struct sockaddr *addr, char *buf, size_t len)
        case AF_INET:
                snprintf(buf, len, "%u.%u.%u.%u, port=%u",
                        NIPQUAD(((struct sockaddr_in *) addr)->sin_addr),
-                       htons(((struct sockaddr_in *) addr)->sin_port));
+                       ntohs(((struct sockaddr_in *) addr)->sin_port));
                break;
 
        case AF_INET6:
                snprintf(buf, len, "%x:%x:%x:%x:%x:%x:%x:%x, port=%u",
                        NIP6(((struct sockaddr_in6 *) addr)->sin6_addr),
-                       htons(((struct sockaddr_in6 *) addr)->sin6_port));
+                       ntohs(((struct sockaddr_in6 *) addr)->sin6_port));
                break;
 
        default:
@@ -1110,7 +1110,8 @@ svc_tcp_accept(struct svc_sock *svsk)
                                                   serv->sv_name);
                                printk(KERN_NOTICE
                                       "%s: last TCP connect from %s\n",
-                                      serv->sv_name, buf);
+                                      serv->sv_name, __svc_print_addr(sin,
+                                                       buf, sizeof(buf)));
                        }
                        /*
                         * Always select the oldest socket. It's not fair,
@@ -1592,7 +1593,7 @@ svc_age_temp_sockets(unsigned long closure)
 
                if (!test_and_set_bit(SK_OLD, &svsk->sk_flags))
                        continue;
-               if (atomic_read(&svsk->sk_inuse) || test_bit(SK_BUSY, &svsk->sk_flags))
+               if (atomic_read(&svsk->sk_inuse) > 1 || test_bit(SK_BUSY, &svsk->sk_flags))
                        continue;
                atomic_inc(&svsk->sk_inuse);
                list_move(le, &to_be_aged);