]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/nfs/callback.c
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[linux-2.6-omap-h63xx.git] / fs / nfs / callback.c
index a070109fa6c702d101841d44da7d372c87dac318..a796be5051bfa4886254f7bd40a9cb4f7ff4f7de 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/sunrpc/svcsock.h>
 #include <linux/nfs_fs.h>
 #include <linux/mutex.h>
+#include <linux/freezer.h>
 
 #include <net/inet_sock.h>
 
@@ -67,10 +68,13 @@ static void nfs_callback_svc(struct svc_rqst *rqstp)
        daemonize("nfsv4-svc");
        /* Process request with signals blocked, but allow SIGKILL.  */
        allow_signal(SIGKILL);
+       set_freezable();
 
        complete(&nfs_callback_info.started);
 
        for(;;) {
+               char buf[RPC_MAX_ADDRBUFLEN];
+
                if (signalled()) {
                        if (nfs_callback_info.users == 0)
                                break;
@@ -88,8 +92,8 @@ static void nfs_callback_svc(struct svc_rqst *rqstp)
                                        __FUNCTION__, -err);
                        break;
                }
-               dprintk("%s: request from %u.%u.%u.%u\n", __FUNCTION__,
-                               NIPQUAD(rqstp->rq_addr.sin_addr.s_addr));
+               dprintk("%s: request from %s\n", __FUNCTION__,
+                               svc_print_addr(rqstp, buf, sizeof(buf)));
                svc_process(rqstp);
        }
 
@@ -164,15 +168,19 @@ void nfs_callback_down(void)
 
 static int nfs_callback_authenticate(struct svc_rqst *rqstp)
 {
-       struct sockaddr_in *addr = &rqstp->rq_addr;
+       struct sockaddr_in *addr = svc_addr_in(rqstp);
        struct nfs_client *clp;
+       char buf[RPC_MAX_ADDRBUFLEN];
 
        /* Don't talk to strangers */
        clp = nfs_find_client(addr, 4);
        if (clp == NULL)
                return SVC_DROP;
-       dprintk("%s: %u.%u.%u.%u NFSv4 callback!\n", __FUNCTION__, NIPQUAD(addr->sin_addr));
+
+       dprintk("%s: %s NFSv4 callback!\n", __FUNCTION__,
+                       svc_print_addr(rqstp, buf, sizeof(buf)));
        nfs_put_client(clp);
+
        switch (rqstp->rq_authop->flavour) {
                case RPC_AUTH_NULL:
                        if (rqstp->rq_proc != CB_NULL)