client.c (fa251f89903d73989e2f63e13d0eaed1e07ce0da) client.c (56e4ebf877b6043c289bda32a5a7385b80c17dee)
1/* client.c: NFS client sharing and management code
2 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version

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

270{
271 const struct sockaddr_in6 *sin1 = (const struct sockaddr_in6 *)sa1;
272 const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sa2;
273
274 if (ipv6_addr_scope(&sin1->sin6_addr) == IPV6_ADDR_SCOPE_LINKLOCAL &&
275 sin1->sin6_scope_id != sin2->sin6_scope_id)
276 return 0;
277
1/* client.c: NFS client sharing and management code
2 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version

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

270{
271 const struct sockaddr_in6 *sin1 = (const struct sockaddr_in6 *)sa1;
272 const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sa2;
273
274 if (ipv6_addr_scope(&sin1->sin6_addr) == IPV6_ADDR_SCOPE_LINKLOCAL &&
275 sin1->sin6_scope_id != sin2->sin6_scope_id)
276 return 0;
277
278 return ipv6_addr_equal(&sin1->sin6_addr, &sin2->sin6_addr);
278 return ipv6_addr_equal(&sin1->sin6_addr, &sin1->sin6_addr);
279}
280#else /* !defined(CONFIG_IPV6) && !defined(CONFIG_IPV6_MODULE) */
281static int nfs_sockaddr_match_ipaddr6(const struct sockaddr *sa1,
282 const struct sockaddr *sa2)
283{
284 return 0;
285}
286#endif

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

630 return 0;
631}
632
633/*
634 * Version 2 or 3 client destruction
635 */
636static void nfs_destroy_server(struct nfs_server *server)
637{
279}
280#else /* !defined(CONFIG_IPV6) && !defined(CONFIG_IPV6_MODULE) */
281static int nfs_sockaddr_match_ipaddr6(const struct sockaddr *sa1,
282 const struct sockaddr *sa2)
283{
284 return 0;
285}
286#endif

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

630 return 0;
631}
632
633/*
634 * Version 2 or 3 client destruction
635 */
636static void nfs_destroy_server(struct nfs_server *server)
637{
638 if (!(server->flags & NFS_MOUNT_NONLM))
638 if (!(server->flags & NFS_MOUNT_LOCAL_FLOCK) ||
639 !(server->flags & NFS_MOUNT_LOCAL_FCNTL))
639 nlmclnt_done(server->nlm_host);
640}
641
642/*
643 * Version 2 or 3 lockd setup
644 */
645static int nfs_start_lockd(struct nfs_server *server)
646{

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

652 .addrlen = clp->cl_addrlen,
653 .nfs_version = clp->rpc_ops->version,
654 .noresvport = server->flags & NFS_MOUNT_NORESVPORT ?
655 1 : 0,
656 };
657
658 if (nlm_init.nfs_version > 3)
659 return 0;
640 nlmclnt_done(server->nlm_host);
641}
642
643/*
644 * Version 2 or 3 lockd setup
645 */
646static int nfs_start_lockd(struct nfs_server *server)
647{

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

653 .addrlen = clp->cl_addrlen,
654 .nfs_version = clp->rpc_ops->version,
655 .noresvport = server->flags & NFS_MOUNT_NORESVPORT ?
656 1 : 0,
657 };
658
659 if (nlm_init.nfs_version > 3)
660 return 0;
660 if (server->flags & NFS_MOUNT_NONLM)
661 if ((server->flags & NFS_MOUNT_LOCAL_FLOCK) &&
662 (server->flags & NFS_MOUNT_LOCAL_FCNTL))
661 return 0;
662
663 switch (clp->cl_proto) {
664 default:
665 nlm_init.protocol = IPPROTO_TCP;
666 break;
667 case XPRT_TRANSPORT_UDP:
668 nlm_init.protocol = IPPROTO_UDP;

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

896 if (server->wsize > max_rpc_payload)
897 server->wsize = max_rpc_payload;
898 if (server->wsize > NFS_MAX_FILE_IO_SIZE)
899 server->wsize = NFS_MAX_FILE_IO_SIZE;
900 server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
901 server->wtmult = nfs_block_bits(fsinfo->wtmult, NULL);
902
903 server->dtsize = nfs_block_size(fsinfo->dtpref, NULL);
663 return 0;
664
665 switch (clp->cl_proto) {
666 default:
667 nlm_init.protocol = IPPROTO_TCP;
668 break;
669 case XPRT_TRANSPORT_UDP:
670 nlm_init.protocol = IPPROTO_UDP;

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

898 if (server->wsize > max_rpc_payload)
899 server->wsize = max_rpc_payload;
900 if (server->wsize > NFS_MAX_FILE_IO_SIZE)
901 server->wsize = NFS_MAX_FILE_IO_SIZE;
902 server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
903 server->wtmult = nfs_block_bits(fsinfo->wtmult, NULL);
904
905 server->dtsize = nfs_block_size(fsinfo->dtpref, NULL);
904 if (server->dtsize > PAGE_CACHE_SIZE)
905 server->dtsize = PAGE_CACHE_SIZE;
906 if (server->dtsize > PAGE_CACHE_SIZE * NFS_MAX_READDIR_PAGES)
907 server->dtsize = PAGE_CACHE_SIZE * NFS_MAX_READDIR_PAGES;
906 if (server->dtsize > server->rsize)
907 server->dtsize = server->rsize;
908
909 if (server->flags & NFS_MOUNT_NOAC) {
910 server->acregmin = server->acregmax = 0;
911 server->acdirmin = server->acdirmax = 0;
912 }
913

--- 883 unchanged lines hidden ---
908 if (server->dtsize > server->rsize)
909 server->dtsize = server->rsize;
910
911 if (server->flags & NFS_MOUNT_NOAC) {
912 server->acregmin = server->acregmax = 0;
913 server->acdirmin = server->acdirmax = 0;
914 }
915

--- 883 unchanged lines hidden ---