Merge branch 'for-2.6.30' of git://linux-nfs.org/~bfields/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 6 Apr 2009 20:25:56 +0000 (13:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 6 Apr 2009 20:25:56 +0000 (13:25 -0700)
* 'for-2.6.30' of git://linux-nfs.org/~bfields/linux: (81 commits)
  nfsd41: define nfsd4_set_statp as noop for !CONFIG_NFSD_V4
  nfsd41: define NFSD_DRC_SIZE_SHIFT in set_max_drc
  nfsd41: Documentation/filesystems/nfs41-server.txt
  nfsd41: CREATE_EXCLUSIVE4_1
  nfsd41: SUPPATTR_EXCLCREAT attribute
  nfsd41: support for 3-word long attribute bitmask
  nfsd: dynamically skip encoded fattr bitmap in _nfsd4_verify
  nfsd41: pass writable attrs mask to nfsd4_decode_fattr
  nfsd41: provide support for minor version 1 at rpc level
  nfsd41: control nfsv4.1 svc via /proc/fs/nfsd/versions
  nfsd41: add OPEN4_SHARE_ACCESS_WANT nfs4_stateid bmap
  nfsd41: access_valid
  nfsd41: clientid handling
  nfsd41: check encode size for sessions maxresponse cached
  nfsd41: stateid handling
  nfsd: pass nfsd4_compound_state* to nfs4_preprocess_{state,seq}id_op
  nfsd41: destroy_session operation
  nfsd41: non-page DRC for solo sequence responses
  nfsd41: Add a create session replay cache
  nfsd41: create_session operation
  ...

1  2 
fs/nfsd/nfsctl.c
fs/nfsd/nfssvc.c
fs/nfsd/vfs.c
include/linux/sunrpc/svc.h
net/sunrpc/svc.c
net/sunrpc/svc_xprt.c
net/sunrpc/svcsock.c

Simple merge
@@@ -227,8 -271,8 +271,7 @@@ int nfsd_create_serv(void
                        nfsd_max_blksize /= 2;
        }
  
-       atomic_set(&nfsd_busy, 0);
        nfsd_serv = svc_create_pooled(&nfsd_program, nfsd_max_blksize,
 -                                    AF_INET,
                                      nfsd_last_thread, nfsd, THIS_MODULE);
        if (nfsd_serv == NULL)
                err = -ENOMEM;
diff --cc fs/nfsd/vfs.c
Simple merge
@@@ -390,13 -406,14 +405,14 @@@ struct svc_rqst *svc_prepare_thread(str
                                        struct svc_pool *pool);
  void             svc_exit_thread(struct svc_rqst *);
  struct svc_serv *  svc_create_pooled(struct svc_program *, unsigned int,
 -                      sa_family_t, void (*shutdown)(struct svc_serv *),
 +                      void (*shutdown)(struct svc_serv *),
                        svc_thread_fn, struct module *);
  int              svc_set_num_threads(struct svc_serv *, struct svc_pool *, int);
+ int              svc_pool_stats_open(struct svc_serv *serv, struct file *file);
  void             svc_destroy(struct svc_serv *);
  int              svc_process(struct svc_rqst *);
 -int              svc_register(const struct svc_serv *, const unsigned short,
 -                              const unsigned short);
 +int              svc_register(const struct svc_serv *, const int,
 +                              const unsigned short, const unsigned short);
  
  void             svc_wake_up(struct svc_serv *);
  void             svc_reserve(struct svc_rqst *rqstp, int space);
Simple merge
Simple merge
@@@ -1139,9 -1113,27 +1112,15 @@@ static struct svc_sock *svc_setup_socke
        /* Initialize the socket */
        if (sock->type == SOCK_DGRAM)
                svc_udp_init(svsk, serv);
-       else
+       else {
+               /* initialise setting must have enough space to
+                * receive and respond to one request.
+                */
+               svc_sock_setbufsize(svsk->sk_sock, 4 * serv->sv_max_mesg,
+                                       4 * serv->sv_max_mesg);
                svc_tcp_init(svsk, serv);
+       }
  
 -      /*
 -       * We start one listener per sv_serv.  We want AF_INET
 -       * requests to be automatically shunted to our AF_INET6
 -       * listener using a mapped IPv4 address.  Make sure
 -       * no-one starts an equivalent IPv4 listener, which
 -       * would steal our incoming connections.
 -       */
 -      val = 0;
 -      if (serv->sv_family == AF_INET6)
 -              kernel_setsockopt(sock, SOL_IPV6, IPV6_V6ONLY,
 -                                      (char *)&val, sizeof(val));
 -
        dprintk("svc: svc_setup_socket created %p (inet %p)\n",
                                svsk, svsk->sk_sk);