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(¤t->sighand->siglock, flags); 669 recalc_sigpending(); 670 spin_unlock_irqrestore(¤t->sighand->siglock, flags); 671 } --- 265 unchanged lines hidden --- | 673 } 674 } 675 676 if (!port) { 677 spin_lock_irqsave(¤t->sighand->siglock, flags); 678 recalc_sigpending(); 679 spin_unlock_irqrestore(¤t->sighand->siglock, flags); 680 } --- 265 unchanged lines hidden --- |