)]}'
{
  "log": [
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "b9d919a4ac6cf031b8e065f82ad8f1b0c9ed74b1",
      "tree": "3139b066396956fd3794df0cb1aa74dcc9f1cb28",
      "parents": [
        "7c955fca3e1d8132982148267d9efcafae849bb6",
        "357f54d6b38252737116a6d631f6ac28ded018ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "message": "Merge branch \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (89 commits)\n  NFS fix the setting of exchange id flag\n  NFS: Don\u0027t use vm_map_ram() in readdir\n  NFSv4: Ensure continued open and lockowner name uniqueness\n  NFS: Move cl_delegations to the nfs_server struct\n  NFS: Introduce nfs_detach_delegations()\n  NFS: Move cl_state_owners and related fields to the nfs_server struct\n  NFS: Allow walking nfs_client.cl_superblocks list outside client.c\n  pnfs: layout roc code\n  pnfs: update nfs4_callback_recallany to handle layouts\n  pnfs: add CB_LAYOUTRECALL handling\n  pnfs: CB_LAYOUTRECALL xdr code\n  pnfs: change lo refcounting to atomic_t\n  pnfs: check that partial LAYOUTGET return is ignored\n  pnfs: add layout to client list before sending rpc\n  pnfs: serialize LAYOUTGET(openstateid)\n  pnfs: layoutget rpc code cleanup\n  pnfs: change how lsegs are removed from layout list\n  pnfs: change layout state seqlock to a spinlock\n  pnfs: add prefix to struct pnfs_layout_hdr fields\n  pnfs: add prefix to struct pnfs_layout_segment fields\n  ...\n"
    },
    {
      "commit": "f0418aa4b1103f959d64dc18273efa04ee0140e9",
      "tree": "01457cfe70d614dcdb12759247212602c2c2c008",
      "parents": [
        "99de8ea962bbc11a51ad4c52e3dc93bee5f6ba70"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Dec 08 13:48:19 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n\nThis allows us to reuse the xprt associated with a server connection if\none has already been set up.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "99de8ea962bbc11a51ad4c52e3dc93bee5f6ba70",
      "tree": "1cda6aaeabe8fc4e3502104005c06a3888bb0bf4",
      "parents": [
        "d75faea330dbd1873c9094e9926ae306590c0998"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Dec 08 12:45:44 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: keep backchannel xprt as long as server connection\n\nMultiple backchannels can share the same tcp connection; from rfc 5661 section\n2.10.3.1:\n\n\tA connection\u0027s association with a session is not exclusive.  A\n\tconnection associated with the channel(s) of one session may be\n\tsimultaneously associated with the channel(s) of other sessions\n\tincluding sessions associated with other client IDs.\n\nHowever, multiple backchannels share a connection, they must all share\nthe same xid stream (hence the same rpc_xprt); the only way we have to\nmatch replies with calls at the rpc layer is using the xid.\n\nSo, keep the rpc_xprt around as long as the connection lasts, in case\nwe\u0027re asked to use the connection as a backchannel again.\n\nRequests to create new backchannel clients over a given server\nconnection should results in creating new clients that reuse the\nexisting rpc_xprt.\n\nBut to start, just reject attempts to associate multiple rpc_xprt\u0027s with\nthe same underlying bc_xprt.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d75faea330dbd1873c9094e9926ae306590c0998",
      "tree": "36b8e50ad2d94c75e77dacd98ff02036ddd0f65f",
      "parents": [
        "dcbeaa68dbbdacbbb330a86c7fc95a28473fc209"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Nov 30 19:15:01 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: move sk_bc_xprt to svc_xprt\n\nThis seems obviously transport-level information even if it\u0027s currently\nused only by the server socket code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "68c404b18f6fba404b2753622d0459c68ee128ae",
      "tree": "c1ec0bb12f19d91071b461cc2831d9d3dd4c74f3",
      "parents": [
        "d035c36c58dd9183ad6aa7875dea89893faedb55",
        "6650239a4b01077e80d5a4468562756d77afaa59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:48:02 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:48:02 2011 -0500"
      },
      "message": "Merge branch \u0027bugfixes\u0027 into nfs-for-2.6.38\n\nConflicts:\n\tfs/nfs/nfs2xdr.c\n\tfs/nfs/nfs3xdr.c\n\tfs/nfs/nfs4xdr.c\n"
    },
    {
      "commit": "6650239a4b01077e80d5a4468562756d77afaa59",
      "tree": "505c9a1dc26c26608ce6a5981093a6357d4f3638",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 08 17:45:38 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:45:01 2011 -0500"
      },
      "message": "NFS: Don\u0027t use vm_map_ram() in readdir\n\nvm_map_ram() is not available on NOMMU platforms, and causes trouble\non incoherrent architectures such as ARM when we access the page data\nthrough both the direct and the virtual mapping.\n\nThe alternative is to use the direct mapping to access page data\nfor the case when we are not crossing a page boundary, but to copy\nthe data into a linear scratch buffer when we are accessing data\nthat spans page boundaries.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCc: stable@kernel.org  [2.6.37]\n"
    },
    {
      "commit": "23d69b09b78c4876e134f104a3814c30747c53f1",
      "tree": "40744de4f4126c21027ce537264524095e0e7979",
      "parents": [
        "e744070fd4ff9d3114277e52d77afa21579adce2",
        "569ff2de2e1c8ac67c8df3a7367d46d0d9460a35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)\n  usb: don\u0027t use flush_scheduled_work()\n  speedtch: don\u0027t abuse struct delayed_work\n  media/video: don\u0027t use flush_scheduled_work()\n  media/video: explicitly flush request_module work\n  ioc4: use static work_struct for ioc4_load_modules()\n  init: don\u0027t call flush_scheduled_work() from do_initcalls()\n  s390: don\u0027t use flush_scheduled_work()\n  rtc: don\u0027t use flush_scheduled_work()\n  mmc: update workqueue usages\n  mfd: update workqueue usages\n  dvb: don\u0027t use flush_scheduled_work()\n  leds-wm8350: don\u0027t use flush_scheduled_work()\n  mISDN: don\u0027t use flush_scheduled_work()\n  macintosh/ams: don\u0027t use flush_scheduled_work()\n  vmwgfx: don\u0027t use flush_scheduled_work()\n  tpm: don\u0027t use flush_scheduled_work()\n  sonypi: don\u0027t use flush_scheduled_work()\n  hvsi: don\u0027t use flush_scheduled_work()\n  xen: don\u0027t use flush_scheduled_work()\n  gdrom: don\u0027t use flush_scheduled_work()\n  ...\n\nFixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c\nas per Tejun.\n"
    },
    {
      "commit": "b4a45f5fe8078bfc10837dbd5b98735058bc4698",
      "tree": "df6f13a27610a3ec7eb4a661448cd779a8f84c79",
      "parents": [
        "01539ba2a706ab7d35fc0667dff919ade7f87d63",
        "b3e19d924b6eaf2ca7d22cba99a517c5171007b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin: (57 commits)\n  fs: scale mntget/mntput\n  fs: rename vfsmount counter helpers\n  fs: implement faster dentry memcmp\n  fs: prefetch inode data in dcache lookup\n  fs: improve scalability of pseudo filesystems\n  fs: dcache per-inode inode alias locking\n  fs: dcache per-bucket dcache hash locking\n  bit_spinlock: add required includes\n  kernel: add bl_list\n  xfs: provide simple rcu-walk ACL implementation\n  btrfs: provide simple rcu-walk ACL implementation\n  ext2,3,4: provide simple rcu-walk ACL implementation\n  fs: provide simple rcu-walk generic_check_acl implementation\n  fs: provide rcu-walk aware permission i_ops\n  fs: rcu-walk aware d_revalidate method\n  fs: cache optimise dentry and inode for rcu-walk\n  fs: dcache reduce branches in lookup path\n  fs: dcache remove d_mounted\n  fs: fs_struct use seqlock\n  fs: rcu-walk for path lookup\n  ...\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "4a19de0f4b693139bb10b7cc3cfe1f618576ba67",
      "tree": "c947ed534254d08c5b8836349303844134a13d19",
      "parents": [
        "42acd021824578fa0eeb6eb58d457c23ec5dc9c0"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:35 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:25 2011 -0500"
      },
      "message": "NFS rename client back channel transport field\n\nDifferentiate from server backchannel\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nAcked-by: Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c2618c6f29c41a0a966f14f05c8bf45fcabb750",
      "tree": "c247cfda9f847028e1d43cab1e69d2cd8a2146a4",
      "parents": [
        "f4eecd5da3422e82e88e36c33cbd2595eebcacb1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:31 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:24 2011 -0500"
      },
      "message": "NFS associate sessionid with callback connection\n\nThe sessions based callback service is started prior to the CREATE_SESSION call\nso that it can handle CB_NULL requests which can be sent before the\nCREATE_SESSION call returns and the session ID is known.\n\nSet the callback sessionid after a sucessful CREATE_SESSION.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16b2d1e1d12de000404d7c845d0db1226511f84d",
      "tree": "8ad973bbcee7a1d5bb34ce855ef41324e253c181",
      "parents": [
        "1f11a034cdc4b45ee56d51b87a9e37cb776fb15b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:27 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC register and unregister the back channel transport\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f11a034cdc4b45ee56d51b87a9e37cb776fb15b",
      "tree": "7d99e63af6a6c0b371ab1ee48da16edc73ab942c",
      "parents": [
        "71e161a6a9fa021a280e564254fcda894e6fbd14"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:26 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC new transport for the NFSv4.1 shared back channel\n\nMove the current sock create and destroy routines into the new transport ops.\nBack channel socket will be destroyed by the svc_closs_all call in svc_destroy.\n\nAdded check: only TCP supported on shared back channel.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nAcked-by: Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "71e161a6a9fa021a280e564254fcda894e6fbd14",
      "tree": "df454328272a688e7a8a160c32ec4ab4f4ec7702",
      "parents": [
        "4b5b3ba16be1b195d2e1161746637acd4b9fed4f"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:25 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC fix bc_send print\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b5b3ba16be1b195d2e1161746637acd4b9fed4f",
      "tree": "6e58eb24836d73b8fd756d9dff7199a88a9ebafe",
      "parents": [
        "64c2ce8b72eceec4030b04bca32d098b3d1431bb"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu Jan 06 02:04:24 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:23 2011 -0500"
      },
      "message": "SUNRPC move svc_drop to caller of svc_process_common\n\nThe NFSv4.1 shared back channel does not need to call svc_drop because the\ncallback service never outlives the single connection it services, and it\nreuses it\u0027s buffers and keeps the trasport.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nAcked-by: Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdef7aa5d4020fd94ffcbf0078d6bd9e5a111e19",
      "tree": "270c2b03e9cb5cf5451b0e229c5a328727ef743a",
      "parents": [
        "6bab93f87ec703bf6650875881b11f9f27d7da56"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 14:12:47 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:25 2011 -0500"
      },
      "message": "svcrpc: ensure cache_check caller sees updated entry\n\nSupposes cache_check runs simultaneously with an update on a different\nCPU:\n\n\tcache_check\t\t\ttask doing update\n\t^^^^^^^^^^^\t\t\t^^^^^^^^^^^^^^^^^\n\n\t1. test for CACHE_VALID\t\t1\u0027. set entry-\u003edata\n\t   \u0026 !CACHE_NEGATIVE\n\n\t2. use entry-\u003edata\t\t2\u0027. set CACHE_VALID\n\nIf the two memory writes performed in step 1\u0027 and 2\u0027 appear misordered\nwith respect to the reads in step 1 and 2, then the caller could get\nstale data at step 2 even though it saw CACHE_VALID set on the cache\nentry.\n\nAdd memory barriers to prevent this.\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6bab93f87ec703bf6650875881b11f9f27d7da56",
      "tree": "1042182b79c43747404fe91b03b3b958246c3a9c",
      "parents": [
        "da165dd60e136d0609e0a2c0c2a9b9a5372200d6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 03 15:10:27 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:24 2011 -0500"
      },
      "message": "svcrpc: take lock on turning entry NEGATIVE in cache_check\n\nWe attempt to turn a cache entry negative in place.  But that entry may\nalready have been filled in by some other task since we last checked\nwhether it was valid, so we could be modifying an already-valid entry.\nIf nothing else there\u0027s a likely leak in such a case when the entry is\neventually put() and contents are not freed because it has\nCACHE_NEGATIVE set.\n\nSo, take the cache_lock just as sunrpc_cache_update() does.\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9e701c610923aaeac8b38b9202a686d1cc9ee35d",
      "tree": "1b2d65df63858a2cd35a4154e6d8a9fea3e716a3",
      "parents": [
        "d76d1815f3e72fb627ad7f95ef63120b0a557c9c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 21:56:36 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:22 2011 -0500"
      },
      "message": "svcrpc: simpler request dropping\n\nCurrently we use -EAGAIN returns to determine when to drop a deferred\nrequest.  On its own, that is error-prone, as it makes us treat -EAGAIN\nreturns from other functions specially to prevent inadvertent dropping.\n\nSo, use a flag on the request instead.\n\nReturning an error on request deferral is still required, to prevent\nfurther processing, but we no longer need worry that an error return on\nits own could result in a drop.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d76d1815f3e72fb627ad7f95ef63120b0a557c9c",
      "tree": "e639629aabf50fe9b5441286ff12cfc4ec77de98",
      "parents": [
        "3beb6cd1d448e7ded938bbd676493e6a08e9a6cd"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 21:28:34 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:21 2011 -0500"
      },
      "message": "svcrpc: avoid double reply caused by deferral race\n\nCommit d29068c431599fa \"sunrpc: Simplify cache_defer_req and related\nfunctions.\" asserted that cache_check() could determine success or\nfailure of cache_defer_req() by checking the CACHE_PENDING bit.\n\nThis isn\u0027t quite right.\n\nWe need to know whether cache_defer_req() created a deferred request,\nin which case sending an rpc reply has become the responsibility of the\ndeferred request, and it is important that we not send our own reply,\nresulting in two different replies to the same request.\n\nAnd the CACHE_PENDING bit doesn\u0027t tell us that; we could have\nsuccesfully created a deferred request at the same time as another\nthread cleared the CACHE_PENDING bit.\n\nSo, partially revert that commit, to ensure that cache_check() returns\n-EAGAIN if and only if a deferred request has been created.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bdd5f05d91e8ae68075b812ce244c918d3d752cd",
      "tree": "45e5e9d403ee26a666cd9fbcfee5e26ea6511d50",
      "parents": [
        "31f7aa65f536995c6d933c57230919ae408952a5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 04 13:31:45 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:48:02 2011 -0500"
      },
      "message": "SUNRPC: Remove more code when NFSD_DEPRECATED is not configured\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n[bfields@redhat.com: moved svcauth_unix_purge outside ifdef\u0027s.]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "31f7aa65f536995c6d933c57230919ae408952a5",
      "tree": "61b9620af68d846b70a1b256d29c2a0b91febef0",
      "parents": [
        "22b6dee842c6341b49bc09cc5728eb2f8f2b3766"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 24 14:03:38 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:47:29 2011 -0500"
      },
      "message": "svcrpc: modifying valid sunrpc cache entries is racy\n\nOnce a sunrpc cache entry is VALID, we should be replacing it (and\nallowing any concurrent users to destroy it on last put) instead of\ntrying to update it in place.\n\nOtherwise someone referencing the ip_map we\u0027re modifying here could try\nto use the m_client just as we\u0027re putting the last reference.\n\nThe bug should only be seen by users of the legacy nfsd interfaces.\n\n(Thanks to Neil for suggestion to use sunrpc_invalidate.)\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "beb0f0a9fba1fa98b378329a9a5b0a73f25097ae",
      "tree": "33b5cdc0d628a48da74e2aadd0caafb6898d6350",
      "parents": [
        "51f128ea1c9224c1e3cf6c6a1498431d97699668"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Dec 20 21:19:26 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 04 13:10:38 2011 -0500"
      },
      "message": "kernel panic when mount NFSv4\n\nOn Tue, 2010-12-14 at 16:58 +0800, Mi Jinlong wrote:\n\u003e Hi,\n\u003e\n\u003e When testing NFSv4 at RHEL6 with kernel 2.6.32, I got a kernel panic\n\u003e at NFS client\u0027s __rpc_create_common function.\n\u003e\n\u003e The panic place is:\n\u003e   rpc_mkpipe\n\u003e     __rpc_lookup_create()          \u003c\u003d\u003d\u003d find pipefile *idmap*\n\u003e     __rpc_mkpipe()                 \u003c\u003d\u003d\u003d pipefile is *idmap*\n\u003e       __rpc_create_common()\n\u003e        ******  BUG_ON(!d_unhashed(dentry)); ******    *panic*\n\u003e\n\u003e It means that the dentry\u0027s d_flags have be set DCACHE_UNHASHED,\n\u003e but it should not be set here.\n\u003e\n\u003e Is someone known this bug? or give me some idea?\n\u003e\n\u003e A reproduce program is append, but it can\u0027t reproduce the bug every time.\n\u003e the export is: \"/nfsroot       *(rw,no_root_squash,fsid\u003d0,insecure)\"\n\u003e\n\u003e And the panic message is append.\n\u003e\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e #!/bin/sh\n\u003e\n\u003e LOOPTOTAL\u003d768\n\u003e LOOPCOUNT\u003d0\n\u003e ret\u003d0\n\u003e\n\u003e while [ $LOOPCOUNT -ne $LOOPTOTAL ]\n\u003e do\n\u003e \t((LOOPCOUNT +\u003d 1))\n\u003e \tservice nfs restart\n\u003e \t/usr/sbin/rpc.idmapd\n\u003e \tmount -t nfs4 127.0.0.1:/ /mnt|| return 1;\n\u003e \tls -l /var/lib/nfs/rpc_pipefs/nfs/*/\n\u003e \tumount /mnt\n\u003e \techo $LOOPCOUNT\n\u003e done\n\u003e\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e Code: af 60 01 00 00 89 fa 89 f0 e8 64 cf 89 f0 e8 5c 7c 64 cf 31 c0 8b 5c 24 10 8b\n\u003e 74 24 14 8b 7c 24 18 8b 6c 24 1c 83 c4 20 c3 \u003c0f\u003e 0b eb fc 8b 46 28 c7 44 24 08 20\n\u003e de ee f0 c7 44 24 04 56 ea\n\u003e EIP:[\u003cf0ee92ea\u003e] __rpc_create_common+0x8a/0xc0 [sunrpc] SS:ESP 0068:eccb5d28\n\u003e ---[ end trace 8f5606cd08928ed2]---\n\u003e Kernel panic - not syncing: Fatal exception\n\u003e Pid:7131, comm: mount.nfs4 Tainted: G     D   -------------------2.6.32 #1\n\u003e Call Trace:\n\u003e  [\u003cc080ad18\u003e] ? panic+0x42/0xed\n\u003e  [\u003cc080e42c\u003e] ? oops_end+0xbc/0xd0\n\u003e  [\u003cc040b090\u003e] ? do_invalid_op+0x0/0x90\n\u003e  [\u003cc040b10f\u003e] ? do_invalid_op+0x7f/0x90\n\u003e  [\u003cf0ee92ea\u003e] ? __rpc_create_common+0x8a/0xc0[sunrpc]\n\u003e  [\u003cf0edc433\u003e] ? rpc_free_task+0x33/0x70[sunrpc]\n\u003e  [\u003cf0ed6508\u003e] ? prc_call_sync+0x48/0x60[sunrpc]\n\u003e  [\u003cf0ed656e\u003e] ? rpc_ping+0x4e/0x60[sunrpc]\n\u003e  [\u003cf0ed6eaf\u003e] ? rpc_create+0x38f/0x4f0[sunrpc]\n\u003e  [\u003cc080d80b\u003e] ? error_code+0x73/0x78\n\u003e  [\u003cf0ee92ea\u003e] ? __rpc_create_common+0x8a/0xc0[sunrpc]\n\u003e  [\u003cc0532bda\u003e] ? d_lookup+0x2a/0x40\n\u003e  [\u003cf0ee94b1\u003e] ? rpc_mkpipe+0x111/0x1b0[sunrpc]\n\u003e  [\u003cf10a59f4\u003e] ? nfs_create_rpc_client+0xb4/0xf0[nfs]\n\u003e  [\u003cf10d6c6d\u003e] ? nfs_fscache_get_client_cookie+0x1d/0x50[nfs]\n\u003e  [\u003cf10d3fcb\u003e] ? nfs_idmap_new+0x7b/0x140[nfs]\n\u003e  [\u003cc05e76aa\u003e] ? strlcpy+0x3a/0x60\n\u003e  [\u003cf10a60ca\u003e] ? nfs4_set_client+0xea/0x2b0[nfs]\n\u003e  [\u003cf10a6d0c\u003e] ? nfs4_create_server+0xac/0x1b0[nfs]\n\u003e  [\u003cc04f1400\u003e] ? krealloc+0x40/0x50\n\u003e  [\u003cf10b0e8b\u003e] ? nfs4_remote_get_sb+0x6b/0x250[nfs]\n\u003e  [\u003cc04f14ec\u003e] ? kstrdup+0x3c/0x60\n\u003e  [\u003cc0520739\u003e] ? vfs_kern_mount+0x69/0x170\n\u003e  [\u003cf10b1a3c\u003e] ? nfs_do_root_mount+0x6c/0xa0[nfs]\n\u003e  [\u003cf10b1b47\u003e] ? nfs4_try_mount+0x37/0xa0[nfs]\n\u003e  [\u003cf10afe6d\u003e] ? nfs4_validate_text_mount_data+-x7d/0xf0[nfs]\n\u003e  [\u003cf10b1c42\u003e] ? nfs4_get_sb+0x92/0x2f0\n\u003e  [\u003cc0520739\u003e] ? vfs_kern_mount+0x69/0x170\n\u003e  [\u003cc05366d2\u003e] ? get_fs_type+0x32/0xb0\n\u003e  [\u003cc052089f\u003e] ? do_kern_mount+0x3f/0xe0\n\u003e  [\u003cc053954f\u003e] ? do_mount+0x2ef/0x740\n\u003e  [\u003cc0537740\u003e] ? copy_mount_options+0xb0/0x120\n\u003e  [\u003cc0539a0e\u003e] ? sys_mount+0x6e/0xa0\n\nHi,\n\nDoes the following patch fix the problem?\n\nCheers\n  Trond\n\n--------------------------\nSUNRPC: Fix a BUG in __rpc_create_common\n\nFrom: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\nMi Jinlong reports:\n\nWhen testing NFSv4 at RHEL6 with kernel 2.6.32, I got a kernel panic\nat NFS client\u0027s __rpc_create_common function.\n\nThe panic place is:\n  rpc_mkpipe\n      __rpc_lookup_create()          \u003c\u003d\u003d\u003d find pipefile *idmap*\n      __rpc_mkpipe()                 \u003c\u003d\u003d\u003d pipefile is *idmap*\n        __rpc_create_common()\n         ******  BUG_ON(!d_unhashed(dentry)); ****** *panic*\n\nThe test is wrong: we can find ourselves with a hashed negative dentry here\nif the idmapper tried to look up the file before we got round to creating\nit.\n\nJust replace the BUG_ON() with a d_drop(dentry).\n\nReported-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "17f7f4d9fcce8f1b75b5f735569309dee7665968",
      "tree": "14d7e49ca0053a0fcab3c33b5023bf3f90c5c08a",
      "parents": [
        "041110a439e21cd40709ead4ffbfa8034619ad77",
        "d7c1255a3a21e98bdc64df8ccf005a174d7e6289"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/fib_frontend.c\n"
    },
    {
      "commit": "b3bcedadf23264c3b7afcbfbfe1965a17ef1352c",
      "tree": "119c1b242836023b2fca36a7ec7d9642780d2908",
      "parents": [
        "aa69947399a119d7f1b35bbcd62c849839b35449"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Dec 21 10:52:24 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 21 11:51:26 2010 -0500"
      },
      "message": "net/sunrpc/clnt.c: Convert sprintf_symbol to %ps\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3c0ceea83ba3741226ea04eb1804d254da2642f",
      "tree": "dfbc7b1945536e95e5d52dc88f3044add69ea98f",
      "parents": [
        "66c941f4aa8aef397a757001af61073db23b39e5"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Nov 14 18:08:11 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:22 2010 -0500"
      },
      "message": "net/sunrpc/auth_gss/gss_krb5_crypto.c: Use normal negative error value return\n\nAnd remove unnecessary double semicolon too.\n\nNo effect to code, as test is !\u003d 0.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "66c941f4aa8aef397a757001af61073db23b39e5",
      "tree": "5b3e1d1d210eef44f99c9ff716ec17cba93a89fd",
      "parents": [
        "5b6a599f0da3722dea9ecc01d97f54061662ce49"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Wed Dec 15 14:47:20 2010 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:21 2010 -0500"
      },
      "message": "net: sunrpc: kill unused macros\n\nThese macros never be used for several years.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3942302ea9e1dffa933021b20bf1642046e7641b",
      "tree": "c6b878198ab33ee5893f24b7366b9c209d71a2dc",
      "parents": [
        "7c96aef75949a56ec427fc6a2522dace2af33605"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Nov 15 11:27:01 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:19 2010 -0500"
      },
      "message": "sunrpc: svc_sock_names should hold ref to socket being closed.\n\nCurrently svc_sock_names calls svc_close_xprt on a svc_sock to\nwhich it does not own a reference.\nAs soon as svc_close_xprt sets XPT_CLOSE, the socket could be\nfreed by a separate thread (though this is a very unlikely race).\n\nIt is safer to hold a reference while calling svc_close_xprt.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7c96aef75949a56ec427fc6a2522dace2af33605",
      "tree": "ca65368231d4c5b39e3adce558bfe15d712809c7",
      "parents": [
        "18b631f83810e95eeb2e1839889b27142bd8d6d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Nov 15 11:27:01 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:18 2010 -0500"
      },
      "message": "sunrpc: remove xpt_pool\n\nThe xpt_pool field is only used for reporting BUGs.\nAnd it isn\u0027t used correctly.\n\nIn particular, when it is cleared in svc_xprt_received before\nXPT_BUSY is cleared, there is no guarantee that either the\ncompiler or the CPU might not re-order to two assignments, just\nsetting xpt_pool to NULL after XPT_BUSY is cleared.\n\nIf a different cpu were running svc_xprt_enqueue at this moment,\nit might see XPT_BUSY clear and then xpt_pool non-NULL, and\nso BUG.\n\nThis could be fixed by calling\n  smp_mb__before_clear_bit()\nbefore the clear_bit.  However as xpt_pool isn\u0027t really used,\nit seems safest to simply remove xpt_pool.\n\nAnother alternate would be to change the clear_bit to\nclear_bit_unlock, and the test_and_set_bit to test_and_set_bit_lock.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ec66ee3797e5848356cf593c6ec7aabf30a00cf1",
      "tree": "7ed5c84cc914644ffa1cd1b6a2b45db53fc224e8",
      "parents": [
        "1205065764f2eda3216ebe213143f69891ee3460",
        "b0c3844d8af6b9f3f18f31e1b0502fbefa2166be"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 13:29:07 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 13:29:07 2010 -0500"
      },
      "message": "Merge commit \u0027v2.6.37-rc6\u0027 into for-2.6.38\n"
    },
    {
      "commit": "bf2695516db982e90a22fc94f93491b481796bb1",
      "tree": "367bf134ef892bfc3fcd2c4fe676b14102d97467",
      "parents": [
        "9f06c719f474be7003763284a990bed6377bb0d4"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:59:29 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:25 2010 -0500"
      },
      "message": "SUNRPC: New xdr_streams XDR decoder API\n\nNow that all client-side XDR decoder routines use xdr_streams, there\nshould be no need to support the legacy calling sequence [rpc_rqst *,\n__be32 *, RPC res *] anywhere.  We can construct an xdr_stream in the\ngeneric RPC code, instead of in each decoder function.\n\nThis is a refactoring change.  It should not cause different behavior.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f06c719f474be7003763284a990bed6377bb0d4",
      "tree": "409ebc3505f943bfdb933ab0acd76ffb5347b372",
      "parents": [
        "1ac7c23e4af5e83525137661595000099f1ce94f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:59:18 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:25 2010 -0500"
      },
      "message": "SUNRPC: New xdr_streams XDR encoder API\n\nNow that all client-side XDR encoder routines use xdr_streams, there\nshould be no need to support the legacy calling sequence [rpc_rqst *,\n__be32 *, RPC arg *] anywhere.  We can construct an xdr_stream in the\ngeneric RPC code, instead of in each encoder function.\n\nAlso, all the client-side encoder functions return 0 now, making a\nreturn value superfluous.  Take this opportunity to convert them to\nreturn void instead.\n\nThis is a refactoring change.  It should not cause different behavior.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1ac7c23e4af5e83525137661595000099f1ce94f",
      "tree": "36038cc6261b15abee63b6d20641ada06aa5bcd7",
      "parents": [
        "4129ccf303593a1922a934697f99e682ff491504"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:59:09 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:25 2010 -0500"
      },
      "message": "SUNRPC: Determine value of \"nrprocs\" automatically\n\nClean up.\n\nJust fixed a panic where the nrprocs field in a different upper layer\nclient was set by hand incorrectly.  Use the compiler-generated method\nused by the other upper layer protocols.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4129ccf303593a1922a934697f99e682ff491504",
      "tree": "e0ad1d8e560b19b8e214f69a2608eccd0f791423",
      "parents": [
        "b43cd8c153f6902100ed50c1f7e11a470c73a73f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 14:58:59 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:25 2010 -0500"
      },
      "message": "SUNRPC: Avoid return code checking in rpcbind XDR encoder functions\n\nClean up.\n\nThe trend in the other XDR encoder functions is to BUG() when encoding\nproblems occur, since a problem here is always due to a local coding\nerror.  Then, instead of a status, zero is unconditionally returned.\n\nUpdate the rpcbind XDR encoders to behave this way.\n\nTo finish the update, use the new-style be32_to_cpup() and\ncpu_to_be32() macros, and compute the buffer sizes using raw integers\ninstead of sizeof().  This matches the conventions used in other XDR\nfunctions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "afe2c511fb2d75f1515081ff1be15bd79cfe722d",
      "tree": "28aa74e9e0c654a95bf3306101e10ac1d16919d1",
      "parents": [
        "2d64672ed38721b7a3815009d79bfb90a1f34a17"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Dec 14 16:21:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 15 10:56:11 2010 +0100"
      },
      "message": "workqueue: convert cancel_rearming_delayed_work[queue]() users to cancel_delayed_work_sync()\n\ncancel_rearming_delayed_work[queue]() has been superceded by\ncancel_delayed_work_sync() quite some time ago.  Convert all the\nin-kernel users.  The conversions are completely equivalent and\ntrivial.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: netdev@vger.kernel.org\nCc: Anton Vorontsov \u003ccbou@mail.ru\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: xfs-masters@oss.sgi.com\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: netfilter-devel@vger.kernel.org\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: linux-nfs@vger.kernel.org\n"
    },
    {
      "commit": "ed2849d3ecfa339435818eeff28f6c3424300cec",
      "tree": "2fbef743779156c2c96afecd8311ff8488a90121",
      "parents": [
        "cf7d7e5a1980d1116ee152d25dac382b112b9c17"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 16 16:55:19 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Dec 07 20:39:55 2010 -0500"
      },
      "message": "sunrpc: prevent use-after-free on clearing XPT_BUSY\n\nWhen an xprt is created, it has a refcount of 1, and XPT_BUSY is set.\nThe refcount is *not* owned by the thread that created the xprt\n(as is clear from the fact that creators never put the reference).\nRather, it is owned by the absence of XPT_DEAD.  Once XPT_DEAD is set,\n(And XPT_BUSY is clear) that initial reference is dropped and the xprt\ncan be freed.\n\nSo when a creator clears XPT_BUSY it is dropping its only reference and\nso must not touch the xprt again.\n\nHowever svc_recv, after calling -\u003expo_accept (and so getting an XPT_BUSY\nreference on a new xprt), calls svc_xprt_recieved.  This clears\nXPT_BUSY and then svc_xprt_enqueue - this last without owning a reference.\nThis is dangerous and has been seen to leave svc_xprt_enqueue working\nwith an xprt containing garbage.\n\nSo we need to hold an extra counted reference over that call to\nsvc_xprt_received.\n\nFor safety, any time we clear XPT_BUSY and then use the xprt again, we\nfirst get a reference, and the put it again afterwards.\n\nNote that svc_close_all does not need this extra protection as there are\nno threads running, and the final free can only be called asynchronously\nfrom such a thread.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5fc43978a79e8021c189660ab63249fd29c5fb32",
      "tree": "cac3a18f6bc6c5b91e5c2592c2d7b0ad459db50e",
      "parents": [
        "3561d43fd289f590fdae672e5eb831b8d5cf0bf6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 11:13:31 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:22:39 2010 -0500"
      },
      "message": "SUNRPC: Fix an infinite loop in call_refresh/call_refreshresult\n\nIf the rpcauth_refreshcred() call returns an error other than\nEACCES, ENOMEM or ETIMEDOUT, we currently end up looping forever\nbetween call_refresh and call_refreshresult.\n\nThe correct thing to do here is to exit on all errors except\nEAGAIN and ETIMEDOUT, for which case we retry 3 times, then\nreturn EACCES.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdb26195f494988fc155c204aab0f0953ba7ec6f",
      "tree": "712f69b83dc9028abead6cbd5e86b8e158a97702",
      "parents": [
        "9ed05ad3c0629f434b18d20c51162f9bbb4f5d31"
      ],
      "author": {
        "name": "Tracey Dent",
        "email": "tdent48227@gmail.com",
        "time": "Sun Nov 21 15:03:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 22 08:16:16 2010 -0800"
      },
      "message": "Net: sunrpc: auth_gss: Makefile: Remove deprecated kbuild goal definitions\n\nChanged Makefile to use \u003cmodules\u003e-y instead of \u003cmodules\u003e-objs\nbecause -objs is deprecated and not mentioned in\nDocumentation/kbuild/makefiles.txt.\n\nSigned-off-by: Tracey Dent \u003ctdent48227@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c335c0b8daf56b9f73479d00b1dd726e1fcca09",
      "tree": "1b408ebd50345d5f3c699a2cd14c73248f39a29d",
      "parents": [
        "b176331627fccc726d28f4fc4a357d1f3c19dbf0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 26 11:32:03 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Nov 19 18:35:12 2010 -0500"
      },
      "message": "svcrpc: fix wspace-checking race\n\nWe call svc_xprt_enqueue() after something happens which we think may\nrequire handling from a server thread.  To avoid such events being lost,\nsvc_xprt_enqueue() must guarantee that there will be a svc_serv() call\nfrom a server thread following any such event.  It does that by either\nwaking up a server thread itself, or checking that XPT_BUSY is set (in\nwhich case somebody else is doing it).\n\nBut the check of XPT_BUSY could occur just as someone finishes\nprocessing some other event, and just before they clear XPT_BUSY.\n\nTherefore it\u0027s important not to clear XPT_BUSY without subsequently\ndoing another svc_export_enqueue() to check whether the xprt should be\nrequeued.\n\nThe xpo_wspace() check in svc_xprt_enqueue() breaks this rule, allowing\nan event to be missed in situations like:\n\n\tdata arrives\n\tcall svc_tcp_data_ready():\n\tcall svc_xprt_enqueue():\n\tset BUSY\n\tfind no write space\n\t\t\t\tsvc_reserve():\n\t\t\t\tfree up write space\n\t\t\t\tcall svc_enqueue():\n\t\t\t\ttest BUSY\n\tclear BUSY\n\nSo, instead, check wspace in the same places that the state flags are\nchecked: before taking BUSY, and in svc_receive().\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b176331627fccc726d28f4fc4a357d1f3c19dbf0",
      "tree": "f7190ebede63602d21fc7c227a3517b40b35e94d",
      "parents": [
        "f8c0d226fef05226ff1a85055c8ed663022f40c1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 20:24:48 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Nov 19 18:35:12 2010 -0500"
      },
      "message": "svcrpc: svc_close_xprt comment\n\nNeil Brown had to explain to me why we do this here; record the answer\nfor posterity.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f8c0d226fef05226ff1a85055c8ed663022f40c1",
      "tree": "4c9a41dc3283b9e4b3f7ef891b7d4a874741abe6",
      "parents": [
        "ca7896cd83456082b1e78816cdf7e41658ef7bcd"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 18:11:21 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Nov 19 18:35:11 2010 -0500"
      },
      "message": "svcrpc: simplify svc_close_all\n\nThere\u0027s no need to be fooling with XPT_BUSY now that all the threads\nare gone.\n\nThe list_del_init() here could execute at the same time as the\nsvc_xprt_enqueue()\u0027s list_add_tail(), with undefined results.  We don\u0027t\nreally care at this point, but it might result in a spurious\nlist-corruption warning or something.\n\nAnd svc_close() isn\u0027t adding any value; just call svc_delete_xprt()\ndirectly.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ca7896cd83456082b1e78816cdf7e41658ef7bcd",
      "tree": "b2af6517a66f213807de4cf8c8b6eb89c218eb8e",
      "parents": [
        "62bac4af3d778f6d06d351c0442008967c512588"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 14:12:40 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Nov 19 18:35:11 2010 -0500"
      },
      "message": "nfsd4: centralize more calls to svc_xprt_received\n\nFollow up on b48fa6b99100dc7772af3cd276035fcec9719ceb by moving all the\nsvc_xprt_received() calls for the main xprt to one place.  The clearing\nof XPT_BUSY here is critical to the correctness of the server, so I\u0027d\nprefer it to be obvious where we do it.\n\nThe only substantive result is moving svc_xprt_received() after\nsvc_receive_deferred().  Other than a (likely insignificant) delay\nwaking up the next thread, that should be harmless.\n\nAlso reshuffle the exit code a little to skip a few other steps that we\ndon\u0027t care about the in the svc_delete_xprt() case.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "62bac4af3d778f6d06d351c0442008967c512588",
      "tree": "b1e0b336d0f23f11896d81e48f2e8f66c2d8f75d",
      "parents": [
        "43b0178eda1e7e5d1e205bbfd076ab5d6ecacc02"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 12:50:15 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Nov 19 18:35:11 2010 -0500"
      },
      "message": "svcrpc: don\u0027t set then immediately clear XPT_DEFERRED\n\nThere\u0027s no harm to doing this, since the only caller will immediately\ncall svc_enqueue() afterwards, ensuring we don\u0027t miss the remaining\ndeferred requests just because XPT_DEFERRED was briefly cleared.\n\nBut why not just do this the simple way?\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94f58df8e545657f0b2d16eca1ac7a4ec39ed6be",
      "tree": "cf914f47862fdabb86257f18b671754c38c2ca8f",
      "parents": [
        "5685b971362651ee3d99ff3cc512c3bbd049d34d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Nov 07 22:11:34 2010 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 16 11:58:51 2010 -0500"
      },
      "message": "SUNRPC: Simplify rpc_alloc_iostats by removing pointless local variable\n\nHi,\n\nWe can simplify net/sunrpc/stats.c::rpc_alloc_iostats() a bit by getting\nrid of the unneeded local variable \u0027new\u0027.\n\nPlease CC me on replies.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc14f2fef682df677d64a145256dbd263df2aa7b",
      "tree": "74f6b939fbad959a43c04ec646cd0adc8af5f53a",
      "parents": [
        "848b83a59b772b8f102bc5e3f1187c2fa5676959"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 01:48:30 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:28 2010 -0400"
      },
      "message": "convert get_sb_single() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "426e1f5cec4821945642230218876b0e89aafab1",
      "tree": "2728ace018d0698886989da586210ef1543a7098",
      "parents": [
        "9e5fca251f44832cb996961048ea977f80faf6ea",
        "63997e98a3be68d7cec806d22bf9b02b2e1daabb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)\n  split invalidate_inodes()\n  fs: skip I_FREEING inodes in writeback_sb_inodes\n  fs: fold invalidate_list into invalidate_inodes\n  fs: do not drop inode_lock in dispose_list\n  fs: inode split IO and LRU lists\n  fs: switch bdev inode bdi\u0027s correctly\n  fs: fix buffer invalidation in invalidate_list\n  fsnotify: use dget_parent\n  smbfs: use dget_parent\n  exportfs: use dget_parent\n  fs: use RCU read side protection in d_validate\n  fs: clean up dentry lru modification\n  fs: split __shrink_dcache_sb\n  fs: improve DCACHE_REFERENCED usage\n  fs: use percpu counter for nr_dentry and nr_dentry_unused\n  fs: simplify __d_free\n  fs: take dcache_lock inside __d_path\n  fs: do not assign default i_ino in new_inode\n  fs: introduce a per-cpu last_ino allocator\n  new helper: ihold()\n  ...\n"
    },
    {
      "commit": "4390110fef9e5c64e10c6ca19d586932242c9a8a",
      "tree": "f2f26fe291c8b4e424b97ac57370b33e0c006568",
      "parents": [
        "a4dd8dce14014665862ce7911b38cb2c69e366dd",
        "42d7ba3d6d56a6cbc773284896108b1e2ebcee81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux: (99 commits)\n  svcrpc: svc_tcp_sendto XPT_DEAD check is redundant\n  svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue\n  svcrpc: assume svc_delete_xprt() called only once\n  svcrpc: never clear XPT_BUSY on dead xprt\n  nfsd4: fix connection allocation in sequence()\n  nfsd4: only require krb5 principal for NFSv4.0 callbacks\n  nfsd4: move minorversion to client\n  nfsd4: delay session removal till free_client\n  nfsd4: separate callback change and callback probe\n  nfsd4: callback program number is per-session\n  nfsd4: track backchannel connections\n  nfsd4: confirm only on succesful create_session\n  nfsd4: make backchannel sequence number per-session\n  nfsd4: use client pointer to backchannel session\n  nfsd4: move callback setup into session init code\n  nfsd4: don\u0027t cache seq_misordered replies\n  SUNRPC: Properly initialize sock_xprt.srcaddr in all cases\n  SUNRPC: Use conventional switch statement when reclassifying sockets\n  sunrpc/xprtrdma: clean up workqueue usage\n  sunrpc: Turn list_for_each-s into the ..._entry-s\n  ...\n\nFix up trivial conflicts (two different deprecation notices added in\nseparate branches) in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "a4dd8dce14014665862ce7911b38cb2c69e366dd",
      "tree": "00e79b2845d5d49abcd83cf253db83a52d482265",
      "parents": [
        "b18cae4224bde7e5a332c19bc99247b2098ea232",
        "411b5e05617593efebc06241dbc56f42150f2abe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  net/sunrpc: Use static const char arrays\n  nfs4: fix channel attribute sanity-checks\n  NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n  NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n  NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n  NFS: client needs to maintain list of inodes with active layouts\n  NFS: create and destroy inode\u0027s layout cache\n  NFSv4.1: pnfs: filelayout: introduce minimal file layout driver\n  NFSv4.1: pnfs: full mount/umount infrastructure\n  NFS: set layout driver\n  NFS: ask for layouttypes during v4 fsinfo call\n  NFS: change stateid to be a union\n  NFSv4.1: pnfsd, pnfs: protocol level pnfs constants\n  SUNRPC: define xdr_decode_opaque_fixed\n  NFSD: remove duplicate NFS4_STATEID_SIZE\n"
    },
    {
      "commit": "411b5e05617593efebc06241dbc56f42150f2abe",
      "tree": "f3a8ea3a580134cee82f06cf23a0e1cbdc4f3f41",
      "parents": [
        "43c2e885be25311e6289c7da52e8a03c4453ee03"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Sep 13 12:48:01 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 25 22:19:52 2010 -0400"
      },
      "message": "net/sunrpc: Use static const char arrays\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "85fe4025c616a7c0ed07bc2fc8c5371b07f3888c",
      "tree": "7a5db7accb6192f2911f2473b4e3191227b914cc",
      "parents": [
        "f991bd2e14210fb93d722cb23e54991de20e8a3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 23 11:19:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "fs: do not assign default i_ino in new_inode\n\nInstead of always assigning an increasing inode number in new_inode\nmove the call to assign it into those callers that actually need it.\nFor now callers that need it is estimated conservatively, that is\nthe call is added to all filesystems that do not assign an i_ino\nby themselves.  For a few more filesystems we can avoid assigning\nany inode number given that they aren\u0027t user visible, and for others\nit could be done lazily when an inode number is actually needed,\nbut that\u0027s left for later patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "42d7ba3d6d56a6cbc773284896108b1e2ebcee81",
      "tree": "3d0d908c39ae228e4b51c3bec8d5bd5188397637",
      "parents": [
        "01dba075d571f5a8b7dcb153fdfd14e981c4cee3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:55:53 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:59:34 2010 -0400"
      },
      "message": "svcrpc: svc_tcp_sendto XPT_DEAD check is redundant\n\nThe only caller (svc_send) has already checked XPT_DEAD.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "01dba075d571f5a8b7dcb153fdfd14e981c4cee3",
      "tree": "b443dff71fd4addcd11b873f356bbd247cadaa43",
      "parents": [
        "ac9303eb74471bc2567960b47497a8bfbe1e5a03"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:23:46 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:59:33 2010 -0400"
      },
      "message": "svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue\n\nIf any xprt marked DEAD is also left BUSY for the rest of its life, then\nthe XPT_DEAD check here is superfluous--we\u0027ll get the same result from\nthe XPT_BUSY check just after.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ac9303eb74471bc2567960b47497a8bfbe1e5a03",
      "tree": "17f9882d81b56d2787d0c556cfa6d76ea40a948b",
      "parents": [
        "7e4fdd0744fcb9f08854c37643bf529c5945cc36"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:16:10 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:59:32 2010 -0400"
      },
      "message": "svcrpc: assume svc_delete_xprt() called only once\n\nAs long as DEAD exports are left BUSY, and svc_delete_xprt is called\nonly with BUSY held, then svc_delete_xprt() will never be called on an\nxprt that is already DEAD.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7e4fdd0744fcb9f08854c37643bf529c5945cc36",
      "tree": "4587d216b75107bc173a66396e5ca6a4d4e1b0ce",
      "parents": [
        "a663bdd8c5d18d287f7468470816c9e0e66343c1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:04:12 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:58:40 2010 -0400"
      },
      "message": "svcrpc: never clear XPT_BUSY on dead xprt\n\nOnce an xprt has been deleted, there\u0027s no reason to allow it to be\nenqueued--at worst, that might cause the xprt to be re-added to some\nglobal list, resulting in later corruption.\n\nAlso, note this leaves us with no need for the reference-count\nmanipulation here.\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "74eb94b218d087798a52c0b4f1379b635287a4b8",
      "tree": "4e467c3014c2b1169f6f71d88cf5d1598f3ce28e",
      "parents": [
        "7b6181e06841f5ad15c4ff708b967b4db65a64de",
        "9a84d38031c258a17bb39beed1e500eadee67407"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (67 commits)\n  SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred\n  nfs: fix unchecked value\n  Ask for time_delta during fsinfo probe\n  Revalidate caches on lock\n  SUNRPC: After calling xprt_release(), we must restart from call_reserve\n  NFSv4: Fix up the \u0027dircount\u0027 hint in encode_readdir\n  NFSv4: Clean up nfs4_decode_dirent\n  NFSv4: nfs4_decode_dirent must clear entry-\u003efattr-\u003evalid\n  NFSv4: Fix a regression in decode_getfattr\n  NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer\n  NFS: Ensure we check all allocation return values in new readdir code\n  NFS: Readdir plus in v4\n  NFS: introduce generic decode_getattr function\n  NFS: check xdr_decode for errors\n  NFS: nfs_readdir_filler catch all errors\n  NFS: readdir with vmapped pages\n  NFS: remove page size checking code\n  NFS: decode_dirent should use an xdr_stream\n  SUNRPC: Add a helper function xdr_inline_peek\n  NFS: remove readdir plus limit\n  ...\n"
    },
    {
      "commit": "9a84d38031c258a17bb39beed1e500eadee67407",
      "tree": "30126034db0285c3becd85ddb36f226add98c2d3",
      "parents": [
        "3388bff5cfe91589a912cdc7f00d3aae3aa18adc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:00:46 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:00:46 2010 -0400"
      },
      "message": "SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "118df3d17f11733b294ea2cd988d56ee376ef9fd",
      "tree": "d9daf8d196b7f2184407f303216eec9db81859a5",
      "parents": [
        "6f7a35bd23bdbbb40c07ee1120ef047190e77d9b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 17:17:31 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 17:27:14 2010 -0400"
      },
      "message": "SUNRPC: After calling xprt_release(), we must restart from call_reserve\n\nRob Leslie reports seeing the following Oops after his Kerberos session\nexpired.\n\nBUG: unable to handle kernel NULL pointer dereference at 00000058\nIP: [\u003ce186ed94\u003e] rpcauth_refreshcred+0x11/0x12c [sunrpc]\n*pde \u003d 00000000\nOops: 0000 [#1]\nlast sysfs file: /sys/devices/platform/pc87360.26144/temp3_input\nModules linked in: autofs4 authenc esp4 xfrm4_mode_transport ipt_LOG ipt_REJECT xt_limit xt_state ipt_REDIRECT xt_owner xt_HL xt_hl xt_tcpudp xt_mark cls_u32 cls_tcindex sch_sfq sch_htb sch_dsmark geodewdt deflate ctr twofish_generic twofish_i586 twofish_common camellia serpent blowfish cast5 cbc xcbc rmd160 sha512_generic sha1_generic hmac crypto_null af_key rpcsec_gss_krb5 nfsd exportfs nfs lockd fscache nfs_acl auth_rpcgss sunrpc ip_gre sit tunnel4 dummy ext3 jbd nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp iptable_mangle iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 iptable_filter ip_tables x_tables pc8736x_gpio nsc_gpio pc87360 hwmon_vid loop aes_i586 aes_generic sha256_generic dm_crypt cs5535_gpio serio_raw cs5535_mfgpt hifn_795x des_generic geode_rng rng_core led_class ext4 mbcache jbd2 crc16 dm_mirror dm_region_hash dm_log dm_snapshot dm_mod sd_mod crc_t10dif ide_pci_generic cs5536 amd74xx ide_core pata_cs5536 ata_generic libata usb_storage via_rhine mii scsi_mod btrfs zlib_deflate crc32c libcrc32c [last unloaded: scsi_wait_scan]\n\nPid: 12875, comm: sudo Not tainted 2.6.36-net5501 #1 /\nEIP: 0060:[\u003ce186ed94\u003e] EFLAGS: 00010292 CPU: 0\nEIP is at rpcauth_refreshcred+0x11/0x12c [sunrpc]\nEAX: 00000000 EBX: defb13a0 ECX: 00000006 EDX: e18683b8\nESI: defb13a0 EDI: 00000000 EBP: 00000000 ESP: de571d58\n DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068\nProcess sudo (pid: 12875, ti\u003dde570000 task\u003ddecd1430 task.ti\u003dde570000)\nStack:\n e186e008 00000000 defb13a0 0000000d deda6000 e1868f22 e196f12b defb13a0\n\u003c0\u003e defb13d8 00000000 00000000 e186e0aa 00000000 defb13a0 de571dac 00000000\n\u003c0\u003e e186956c de571e34 debea5c0 de571dc8 e186967a 00000000 debea5c0 de571e34\nCall Trace:\n [\u003ce186e008\u003e] ? rpc_wake_up_next+0x114/0x11b [sunrpc]\n [\u003ce1868f22\u003e] ? call_decode+0x24a/0x5af [sunrpc]\n [\u003ce196f12b\u003e] ? nfs4_xdr_dec_access+0x0/0xa2 [nfs]\n [\u003ce186e0aa\u003e] ? __rpc_execute+0x62/0x17b [sunrpc]\n [\u003ce186956c\u003e] ? rpc_run_task+0x91/0x97 [sunrpc]\n [\u003ce186967a\u003e] ? rpc_call_sync+0x40/0x5b [sunrpc]\n [\u003ce1969ca2\u003e] ? nfs4_proc_access+0x10a/0x176 [nfs]\n [\u003ce19572fa\u003e] ? nfs_do_access+0x2b1/0x2c0 [nfs]\n [\u003ce186ed61\u003e] ? rpcauth_lookupcred+0x62/0x84 [sunrpc]\n [\u003ce19573b6\u003e] ? nfs_permission+0xad/0x13b [nfs]\n [\u003cc0177824\u003e] ? exec_permission+0x15/0x4b\n [\u003cc0177fbd\u003e] ? link_path_walk+0x4f/0x456\n [\u003cc017867d\u003e] ? path_walk+0x4c/0xa8\n [\u003cc0179678\u003e] ? do_path_lookup+0x1f/0x68\n [\u003cc017a3fb\u003e] ? user_path_at+0x37/0x5f\n [\u003cc016359c\u003e] ? handle_mm_fault+0x229/0x55b\n [\u003cc0170a2d\u003e] ? sys_faccessat+0x93/0x146\n [\u003cc0170aef\u003e] ? sys_access+0xf/0x13\n [\u003cc02cf615\u003e] ? syscall_call+0x7/0xb\nCode: 0f 94 c2 84 d2 74 09 8b 44 24 0c e8 6a e9 8b de 83 c4 14 89 d8 5b 5e 5f 5d c3 55 57 56 53 83 ec 1c fc 89 c6 8b 40 10 89 44 24 04 \u003c8b\u003e 58 58 85 db 0f 85 d4 00 00 00 0f b7 46 70 8b 56 20 89 c5 83\nEIP: [\u003ce186ed94\u003e] rpcauth_refreshcred+0x11/0x12c [sunrpc] SS:ESP 0068:de571d58\nCR2: 0000000000000058\n\nThis appears to be caused by the function rpc_verify_header() first\ncalling xprt_release(), then doing a call_refresh. If we release the\ntransport slot, we should _always_ jump back to call_reserve before\ncalling anything else.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "ba8e452a4fe64a51b74d43761e14d99f0666cc45",
      "tree": "7237e9bf9f2415eda15fec5e517da3340342e9f1",
      "parents": [
        "0715dc632a271fc0fedf3ef4779fe28ac1e53ef4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 19 19:58:49 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:32 2010 -0400"
      },
      "message": "SUNRPC: Add a helper function xdr_inline_peek\n\nWe sometimes need to be able to read ahead in an xdr_stream without\nincrementing the current pointer position.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0",
      "tree": "7851ef1c93aa1aba7ef327ca4b75fd35e6d10f29",
      "parents": [
        "02f36038c568111ad4fc433f6fa760ff5e38fab4",
        "ec37a48d1d16c30b655ac5280209edf52a6775d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)\n  bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.\n  vlan: Calling vlan_hwaccel_do_receive() is always valid.\n  tproxy: use the interface primary IP address as a default value for --on-ip\n  tproxy: added IPv6 support to the socket match\n  cxgb3: function namespace cleanup\n  tproxy: added IPv6 support to the TPROXY target\n  tproxy: added IPv6 socket lookup function to nf_tproxy_core\n  be2net: Changes to use only priority codes allowed by f/w\n  tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled\n  tproxy: added tproxy sockopt interface in the IPV6 layer\n  tproxy: added udp6_lib_lookup function\n  tproxy: added const specifiers to udp lookup functions\n  tproxy: split off ipv6 defragmentation to a separate module\n  l2tp: small cleanup\n  nf_nat: restrict ICMP translation for embedded header\n  can: mcp251x: fix generation of error frames\n  can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set\n  can-raw: add msg_flags to distinguish local traffic\n  9p: client code cleanup\n  rds: make local functions/variables static\n  ...\n\nFix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and\ndrivers/net/wireless/ath/ath9k/debug.c as per David\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "9247685088398cf21bcb513bd2832b4cd42516c4",
      "tree": "af6e9cd7d168903912895cc80849ec4cc43a9535",
      "parents": [
        "4232e8634ad82c5a53389e4016de15a8b15c09c3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Oct 20 11:53:01 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:47 2010 -0400"
      },
      "message": "SUNRPC: Properly initialize sock_xprt.srcaddr in all cases\n\nThe source address field in the transport\u0027s sock_xprt is initialized\nONLY IF the RPC application passed a pointer to a source address\nduring the call to rpc_create().  However, xs_bind() subsequently uses\nthe value of this field without regard to whether the source address\nwas initialized during transport creation or not.\n\nSo far we\u0027ve been lucky: the uninitialized value of this field is\nzeroes.  xs_bind(), until recently, used only the sin[6]_addr field in\nthis sockaddr, and all zeroes is a valid value for this: it means\nANYADDR.  This is a happy coincidence.\n\nHowever, xs_bind() now wants to use the sa_family field as well, and\nexpects it to be initialized to something other than zero.\n\nTherefore, the source address sockaddr field should be fully\ninitialized at transport create time in _every_ case, not just when\nthe RPC application wants to use a specific bind address.\n\nBruce added a workaround for this missing initialization by adjusting\ncommit 6bc9638a, but the \"right\" way to do this is to ensure that the\nsource address sockaddr is always correctly initialized from the\nget-go.\n\nThis patch doesn\u0027t introduce a behavior change.  It\u0027s simply a\nclean-up of Bruce\u0027s fix, to prevent future problems of this kind.  It\nmay look like overkill, but\n\n  a) it clearly documents the default initial value of this field,\n\n  b) it doesn\u0027t assume that the sockaddr_storage memory is first\n     initialized to any particular value, and\n\n  c) it will fail verbosely if some unknown address family is passed\n     in\n\nOriginally introduced by commit d3bc9a1d.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4232e8634ad82c5a53389e4016de15a8b15c09c3",
      "tree": "b834b51f3856ccfa23bf330e16ab480d3b3cbb7e",
      "parents": [
        "a25e758c5fa1137e1bbc440194e55f7c59177145"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Oct 20 11:52:51 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:46 2010 -0400"
      },
      "message": "SUNRPC: Use conventional switch statement when reclassifying sockets\n\nClean up.\n\nDefensive coding: If \"family\" is ever something that is neither\nAF_INET nor AF_INET6, xs_reclassify_socket6() is not the appropriate\ndefault action.  Choose to do nothing in that case.\n\nIntroduced by commit 6bc9638a.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a25e758c5fa1137e1bbc440194e55f7c59177145",
      "tree": "4563a1d423ef9c9d54ca0c1222d34274613b31cf",
      "parents": [
        "8f3a6de313391b6910aa7db185eb9f3e930a51cf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 15 17:49:27 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:45 2010 -0400"
      },
      "message": "sunrpc/xprtrdma: clean up workqueue usage\n\n* Create and use svc_rdma_wq instead of using the system workqueue and\n  flush_scheduled_work().  This workqueue is necessary to serve as\n  flushing domain for rdma-\u003esc_work which is used to destroy itself\n  and thus can\u0027t be flushed explicitly.\n\n* Replace cancel_delayed_work() + flush_scheduled_work() with\n  cancel_delayed_work_sync().\n\n* Implement synchronous connect in xprt_rdma_connect() using\n  flush_delayed_work() on the rdma_connect work instead of using\n  flush_scheduled_work().\n\nThis is to prepare for the deprecation and removal of\nflush_scheduled_work().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8f3a6de313391b6910aa7db185eb9f3e930a51cf",
      "tree": "9f288895541f1f5feb06f6f3964671d63850df2f",
      "parents": [
        "50fa0d40a9d601bb8e6c9a595e90940bc846f7df"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Oct 05 23:30:19 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:16 2010 -0400"
      },
      "message": "sunrpc: Turn list_for_each-s into the ..._entry-s\n\nSaves some lines of code and some branticks when reading one.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "50fa0d40a9d601bb8e6c9a595e90940bc846f7df",
      "tree": "70cff33f36dd95e1b1de74fa09d32fcec9e3b2ae",
      "parents": [
        "c636b572e00e38855dc7a56a0fa438dd835f39de"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Oct 05 20:49:35 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:16 2010 -0400"
      },
      "message": "sunrpc: Remove dead \"else\" branch from bc xprt creation\n\nSince the xprt in question is forcibly set to be bound the else\nbranch of this check is unneeded.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c636b572e00e38855dc7a56a0fa438dd835f39de",
      "tree": "cd0ce34e01030e61cc0571234b21e0af71e714ff",
      "parents": [
        "f10fef38d2d1605c977346457d0adb0919d0bbe7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Oct 06 13:45:56 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:16 2010 -0400"
      },
      "message": "sunrpc: Don\u0027t return NULL from rpcb_create\n\n\u003e The reason for this is in the future, we may want to support additional\n\u003e address family types.  We should, therefore, ensure that every piece of\n\u003e code that is sensitive to address families fail in some orderly manner\n\u003e to let developers know where a change is needed.\n\nMakes sense. I was under impression, that AF-s other than INET are not\ncared about at all :(\n\nHere\u0027s a fixed version of the patch.\n\nLog:\n\nIts callers check for ERR_PTR.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f10fef38d2d1605c977346457d0adb0919d0bbe7",
      "tree": "0c1c9c53248f89682493742e114e6aa658a09864",
      "parents": [
        "8c14ff2aaf26d58aa2258a59bd419c906d105938"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Oct 05 20:47:16 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:16 2010 -0400"
      },
      "message": "sunrpc: Remove useless if (task \u003d\u003d NULL) from xprt_reserve_xprt\n\nThe task in question is dereferenced above (and is actually never NULL).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8c14ff2aaf26d58aa2258a59bd419c906d105938",
      "tree": "b6917bbcf6791fab51b1582a57813941a00e4082",
      "parents": [
        "cdd518d524b49e6e80b109bf985376456a2985ce"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:58:02 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Remove UDP worker wrappers\n\nSame for UDP sockets creation paths.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cdd518d524b49e6e80b109bf985376456a2985ce",
      "tree": "875aab959d443e7eb48071454d4ea3f009d80829",
      "parents": [
        "7dfe1fc36278c3aa0db29356c491db6353678e98"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:57:40 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Remove TCP worker wrappers\n\nThe v4 and the v6 wrappers only pass the respective family\nto the xs_tcp_setup_socket. This family can be taken from the\nxprt\u0027s sockaddr.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7dfe1fc36278c3aa0db29356c491db6353678e98",
      "tree": "775b8ea3f91155cbad9601a15d52bbdd67b0a6f3",
      "parents": [
        "6bc9638ab495516f8a34d2ae48f2f43f145e186f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:57:11 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Pass family to setup_socket calls\n\nNow we have a single socket creation routine and can call it\ndirectly from the setup_socket routines.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6bc9638ab495516f8a34d2ae48f2f43f145e186f",
      "tree": "1a6b139e954b56e6fb24892a832b43c5eb6ad8ed",
      "parents": [
        "beb59b68280d9779cc16591115547678d1c74a66"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:56:38 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Merge xs_create_sock code\n\nAfter xs_bind is merged it\u0027s easy to merge its callers.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[bfields@redhat.com: fix address family initialization]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "beb59b68280d9779cc16591115547678d1c74a66",
      "tree": "12e6bd18bba78f67793d6a99522705f2e9e72d77",
      "parents": [
        "573018c07e040b2c3f3cb8251f66fa4a5cb7425d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Oct 05 15:53:08 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Merge the xs_bind code\n\nThere\u0027s the only difference betseen the xs_bind4 and the\nxs_bind6 - the size of sockaddr structure they use.\n\nFortunatelly its size can be indirectly get from the transport.\n\nChange since v1:\n* use sockaddr_storage instead of sockaddr\n* use rpc_set_port instead of manual port assigning\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[bfields@redhat.com: fix address family initialization]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "573018c07e040b2c3f3cb8251f66fa4a5cb7425d",
      "tree": "179674de7b92fd31b9e83bc64a82092de52cf504",
      "parents": [
        "22d44a7d8a03456aa6d0a047c051aa28728e6ecd"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:55:38 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Call xs_create_sockX directly from setup_socket\n\nRemove now unneeded wrappers that just add type and protocol\nto socket creation callback.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22d44a7d8a03456aa6d0a047c051aa28728e6ecd",
      "tree": "63ab8ec64240e7273a7628c64e9f4b728a5b5d6b",
      "parents": [
        "22f793268de3b4dff8abfcd873ba7afc1f34224f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:54:55 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Factor out v6 sockets creation\n\nSame patch for v6 protocols.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22f793268de3b4dff8abfcd873ba7afc1f34224f",
      "tree": "0e67fb80ab92a83a07cfe2b21648e80e44a281ed",
      "parents": [
        "b65c0310611af73569f94c526a1e2323d99b380a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:54:26 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Factor out v4 sockets creation\n\nThe UDPv4 and TCPv4 socket creation callbacks now look very similar.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b65c0310611af73569f94c526a1e2323d99b380a",
      "tree": "6bae1f1aa2681d1359a89412420f95009c40b1b9",
      "parents": [
        "58dddac9c55c604f01152832c1c3d2c17a5adea9"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:53:46 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Factor out udp sockets creation\n\nMake it look like the TCP sockets creation.\nUnfortunately the git diff made the patch look messy :(\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "58dddac9c55c604f01152832c1c3d2c17a5adea9",
      "tree": "5ab5d5d9cc2db6930bed95ad65e51f79b6c63aa1",
      "parents": [
        "a9f5f0f7bf72f3f1451e844681fb3cb5d0b1c80d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:52:55 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Remove duplicate xprt/transport arguments from calls\n\nThe xs_tcp_reuse_connection takes the xprt only to pass it down\nto the xs_abort_connection. The later one can get it from the given\ntransport itself.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a9f5f0f7bf72f3f1451e844681fb3cb5d0b1c80d",
      "tree": "74ecbabea35a7f7b7995a49a25ada7fb8345116c",
      "parents": [
        "baaf4e487a9c42b345bde14698fd566f864c9287"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:52:25 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Get xprt pointer once in xs_tcp_setup_socket\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "baaf4e487a9c42b345bde14698fd566f864c9287",
      "tree": "10da679b1e2cf660d0e960afc07d4f2393cf0ebb",
      "parents": [
        "5d4ec932972a0dd5486c59909e62dc62105d065c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:51:56 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Remove unused sock arg from xs_next_srcport\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5d4ec932972a0dd5486c59909e62dc62105d065c",
      "tree": "ebd90fe601b7db72050a750a9984830cc894d702",
      "parents": [
        "4a84386fc27fdc7d2ea69fdbc641008e8f943159"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:51:23 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Remove unused sock arg from xs_get_srcport\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a6f8dbc654c3dddc5ac98cf59a88447a90e99ece",
      "tree": "ef4244528cd4a975bca2d00ac1b5e5430a1eac45",
      "parents": [
        "1fa4f3b57cf0c525027ea61011312de139b04f9b"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:18:23 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 19 11:29:59 2010 +0200"
      },
      "message": "sunrpc: remove the big kernel lock\n\nThe sunrpc cache_ioctl function does not need the big kernel lock\nbecause it uses its own queue_lock already.\n\nrpc_pipe_ioctl apparently should be using i_lock like the other\noperations on the pipe file descriptor do.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "4a84386fc27fdc7d2ea69fdbc641008e8f943159",
      "tree": "4d237d58f695713c72a01631d010e6387db820c7",
      "parents": [
        "b432e6b3d9c1b4271c43f02b45136f33a8ed5820"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@ogc.us",
        "time": "Tue Oct 12 15:33:57 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 18 19:51:32 2010 -0400"
      },
      "message": "svcrdma: Cleanup DMA unmapping in error paths.\n\nThere are several error paths in the code that do not unmap DMA. This\npatch adds calls to svc_rdma_unmap_dma to free these DMA contexts.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b432e6b3d9c1b4271c43f02b45136f33a8ed5820",
      "tree": "bc557633646b380b8d5cc7e037a7ddc9036bbd2a",
      "parents": [
        "ecec6e34e18660799444c5a163c7313a20fba701"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@ogc.us",
        "time": "Tue Oct 12 15:33:52 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 18 19:51:31 2010 -0400"
      },
      "message": "svcrdma: Change DMA mapping logic to avoid the page_address kernel API\n\nThere was logic in the send path that assumed that a page containing data\nto send to the client has a KVA. This is not always the case and can result\nin data corruption when page_address returns zero and we end up DMA mapping\nzero.\n\nThis patch changes the bus mapping logic to avoid page_address() where\nnecessary and converts all calls from ib_dma_map_single to ib_dma_map_page\nin order to keep the map/unmap calls symmetric.\n\nSigned-off-by: Tom Tucker \u003ctom@ogc.us\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "70dc78da2cc76e7804c597fea3a0aff67ec8d7ad",
      "tree": "2a547a8457b27a8efd9fe56488dd7ef73e81de6b",
      "parents": [
        "e33534d54f1fde3e541f64fa5ad0dd379fc45fa7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Oct 05 20:48:02 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 11 20:00:17 2010 -0400"
      },
      "message": "sunrpc: Use helper to set v4 mapped addr in ip_map_parse\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e33534d54f1fde3e541f64fa5ad0dd379fc45fa7",
      "tree": "d7136fd857a84576a984f2441b7ee03fc9afd24e",
      "parents": [
        "d29068c431599fa96729556846562eb18429092d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Oct 07 15:29:46 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 11 19:30:28 2010 -0400"
      },
      "message": "sunrpc/cache: centralise handling of size limit on deferred list.\n\nWe limit the number of \u0027defer\u0027 requests to DFR_MAX.\n\nThe imposition of this limit is spread about a bit - sometime we don\u0027t\nadd new things to the list, sometimes we remove old things.\n\nAlso it is currently applied to requests which we are \u0027waiting\u0027 for\nrather than \u0027deferring\u0027.  This doesn\u0027t seem ideal as \u0027waiting\u0027\nrequests are naturally limited by the number of threads.\n\nSo gather the DFR_MAX handling code to one place and only apply it to\nrequests that are actually being deferred.\n\nThis means that not all \u0027cache_deferred_req\u0027 structures go on the\n\u0027cache_defer_list, so we need to be careful when adding and removing\nthings.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d29068c431599fa96729556846562eb18429092d",
      "tree": "6330502e1a6247de1cb785fe44ab599662cb369c",
      "parents": [
        "33515142156efc9ab5dbfe93ff8d4765559dc987"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Oct 07 15:29:46 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 11 19:30:27 2010 -0400"
      },
      "message": "sunrpc: Simplify cache_defer_req and related functions.\n\nThe return value from cache_defer_req is somewhat confusing.\nVarious different error codes are returned, but the single caller is\nonly interested in success or failure.\n\nIn fact it can measure this success or failure itself by checking\nCACHE_PENDING, which makes the point of the code more explicit.\n\nSo change cache_defer_req to return \u0027void\u0027 and test CACHE_PENDING\nafter it completes, to see if the request was actually deferred or\nnot.\n\nSimilarly setup_deferral and cache_wait_req don\u0027t need a return value,\nso make them void and remove some code.\n\nThe call to cache_revisit_request (to guard against a race) is only\nneeded for the second call to setup_deferral, so move it out of\nsetup_deferral to after that second call.  With the first call the\nrace is handled differently (by explicitly calling\n\u0027wait_for_completion\u0027).\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "69259abb64d4da77273bf59accfc9fa79e7165f4",
      "tree": "bd043ab03a788b749c8d5ae4049d8defae9abf34",
      "parents": [
        "dd53df265b1ee7a1fbbc76bb62c3bec2383bbd44",
        "12e94471b2be5ef9b55b10004a3a2cd819490036"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 06 19:39:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 06 19:39:31 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/pcmcia/pcnet_cs.c\n\tnet/caif/caif_socket.c\n"
    },
    {
      "commit": "edc7a894034acb4c7ff8305716ca5df8aaf8e642",
      "tree": "7db61c8c76fc3e58e499989665f2f26987c058a1",
      "parents": [
        "c7662518c781edc8059cd9737d18168154bf7510"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 22 15:37:17 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 19:29:44 2010 -0400"
      },
      "message": "nfsd: provide callbacks on svc_xprt deletion\n\nNFSv4.1 needs warning when a client tcp connection goes down, if that\nconnection is being used as a backchannel, so that it can warn the\nclient that it has lost the backchannel connection.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1e7af1b8062598a038c04dfaaabd038a0d6e8b6a",
      "tree": "2e171464ff365c4322d30a0d2fed106c74feecdd",
      "parents": [
        "277f68dbba397997c7f3dc843d14afa1654bb80e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 15:40:01 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 18:09:55 2010 -0400"
      },
      "message": "nfsd4: remove spkm3\n\nUnfortunately, spkm3 never got very far; while interoperability with one\nother implementation was demonstrated at some point, problems were found\nwith the spec that were deemed not worth fixing.\n\nThe kernel code is useless on its own without nfs-utils patches which\nwere never merged into nfs-utils, and were only ever available from\nciti.umich.edu.  They appear not to have been updated since 2005.\n\nTherefore it seems safe to assume that this code has no users, and never\nwill.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "277f68dbba397997c7f3dc843d14afa1654bb80e",
      "tree": "7c9856840c40a3f08bef3a965a9f3c39937c9e99",
      "parents": [
        "14ec63c3336af7ea5445e0d8f4d26ba3041e40b3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 22 12:55:06 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 18:09:54 2010 -0400"
      },
      "message": "sunrpc: fix race in new cache_wait code.\n\nIf we set up to wait for a cache item to be filled in, and then find\nthat it is no longer pending, it could be that some other thread is\nin \u0027cache_revisit_request\u0027 and has moved our request to its \u0027pending\u0027 list.\nSo when our setup_deferral calls cache_revisit_request it will find nothing to\nput on the pending list, and do nothing.\n\nWe then return from cache_wait_req, thus leaving the \u0027sleeper\u0027\non-stack structure open to being corrupted by subsequent stack usage.\n\nHowever that \u0027sleeper\u0027 could still be on the \u0027pending\u0027 list that the\nother thread is looking at and so any corruption could cause it to behave badly.\n\nTo avoid this race we simply take the same path as if the\n\u0027wait_for_completion_interruptible_timeout\u0027 was interrupted and if the\nsleeper is no longer on the list (which it won\u0027t be) we wait on the\ncompletion - which will ensure that any other cache_revisit_request\nwill have let go of the sleeper.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "14ec63c3336af7ea5445e0d8f4d26ba3041e40b3",
      "tree": "d81dee6a73cb604c90efd8add86e63a143bcd429",
      "parents": [
        "721db93a55dad71bb89e7d11cc6be1f180ec3f2d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:06:57 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:19:00 2010 -0400"
      },
      "message": "sunrpc: Create sockets in net namespaces\n\nThe context is already known in all the sock_create callers.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "37aa2133731d9231eb834f700119f0d3f1ed2664",
      "tree": "2b4da236e76d590fb1bd675e4401af5d1ecff327",
      "parents": [
        "9a23e332ec621d36e52cc7a978abc0917067b1aa"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:05:43 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:58 2010 -0400"
      },
      "message": "sunrpc: Tag rpc_xprt with net\n\nThe net is known from the xprt_create and this tagging will also\ngive un the context in the conntection workers where real sockets\nare created.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9a23e332ec621d36e52cc7a978abc0917067b1aa",
      "tree": "351025a1c7816a40407999692ede97421c0057df",
      "parents": [
        "c653ce3f0aee9bb2b221ebf3579385c06f81efcd"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:05:12 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:57 2010 -0400"
      },
      "message": "sunrpc: Add net to xprt_create\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c653ce3f0aee9bb2b221ebf3579385c06f81efcd",
      "tree": "d0f5a8018e2cf959b6bc1549ce75602ed179dca9",
      "parents": [
        "62832c039eab9d03cd28a66427ce8276988f28b0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:04:45 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:56 2010 -0400"
      },
      "message": "sunrpc: Add net to rpc_create_args\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    }
  ],
  "next": "62832c039eab9d03cd28a66427ce8276988f28b0"
}
