svc.c (7adae489fe794e3e203ff168595f635d0b845e59) svc.c (bc5fea4299b8bda5f73c6f79dc35d388caf8bced)
1/*
2 * linux/net/sunrpc/svc.c
3 *
4 * High-level RPC service routines
5 *
6 * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
7 *
8 * Multiple threads pools and NUMAisation

--- 630 unchanged lines hidden (view full) ---

639 */
640int
641svc_register(struct svc_serv *serv, int proto, unsigned short port)
642{
643 struct svc_program *progp;
644 unsigned long flags;
645 int i, error = 0, dummy;
646
1/*
2 * linux/net/sunrpc/svc.c
3 *
4 * High-level RPC service routines
5 *
6 * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
7 *
8 * Multiple threads pools and NUMAisation

--- 630 unchanged lines hidden (view full) ---

639 */
640int
641svc_register(struct svc_serv *serv, int proto, unsigned short port)
642{
643 struct svc_program *progp;
644 unsigned long flags;
645 int i, error = 0, dummy;
646
647 progp = serv->sv_program;
648
649 dprintk("RPC: svc_register(%s, %s, %d)\n",
650 progp->pg_name, proto == IPPROTO_UDP? "udp" : "tcp", port);
651
652 if (!port)
653 clear_thread_flag(TIF_SIGPENDING);
654
647 if (!port)
648 clear_thread_flag(TIF_SIGPENDING);
649
655 for (i = 0; i < progp->pg_nvers; i++) {
656 if (progp->pg_vers[i] == NULL)
657 continue;
658 error = rpc_register(progp->pg_prog, i, proto, port, &dummy);
659 if (error < 0)
660 break;
661 if (port && !dummy) {
662 error = -EACCES;
663 break;
650 for (progp = serv->sv_program; progp; progp = progp->pg_next) {
651 for (i = 0; i < progp->pg_nvers; i++) {
652 if (progp->pg_vers[i] == NULL)
653 continue;
654
655 dprintk("RPC: svc_register(%s, %s, %d, %d)%s\n",
656 progp->pg_name,
657 proto == IPPROTO_UDP? "udp" : "tcp",
658 port,
659 i,
660 progp->pg_vers[i]->vs_hidden?
661 " (but not telling portmap)" : "");
662
663 if (progp->pg_vers[i]->vs_hidden)
664 continue;
665
666 error = rpc_register(progp->pg_prog, i, proto, port, &dummy);
667 if (error < 0)
668 break;
669 if (port && !dummy) {
670 error = -EACCES;
671 break;
672 }
664 }
665 }
666
667 if (!port) {
668 spin_lock_irqsave(&current->sighand->siglock, flags);
669 recalc_sigpending();
670 spin_unlock_irqrestore(&current->sighand->siglock, flags);
671 }

--- 265 unchanged lines hidden ---
673 }
674 }
675
676 if (!port) {
677 spin_lock_irqsave(&current->sighand->siglock, flags);
678 recalc_sigpending();
679 spin_unlock_irqrestore(&current->sighand->siglock, flags);
680 }

--- 265 unchanged lines hidden ---