)]}'
{
  "log": [
    {
      "commit": "1d2e88e73ee0af52b0ed63b5fb8f42a919a4d9de",
      "tree": "7e28d99780ab4b925275a7bad07beeae979646d3",
      "parents": [
        "31f31db1a15671513df9cd9fbe56ef45ee1e9a2a"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri May 02 13:42:45 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:31 2008 -0700"
      },
      "message": "nfs: make nfs4_drop_state_owner() static\n\nnfs4_drop_state_owner() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31f31db1a15671513df9cd9fbe56ef45ee1e9a2a",
      "tree": "ad4015fb8159aaa18041791c2c85e272c5565dd7",
      "parents": [
        "3110ff8048fb757b36112b044b384aea9c44d6e4"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Fri May 02 13:42:45 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:30 2008 -0700"
      },
      "message": "nfs: path_{get,put}() cleanups\n\nHere are some more places where path_{get,put}() can be used instead of\ndput()/mntput() pair.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3110ff8048fb757b36112b044b384aea9c44d6e4",
      "tree": "5260f4973bd0848ddef3fb3c111386e59616abbc",
      "parents": [
        "46c8ac74250a396aca855e494f49a960797a6b5e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri May 02 13:42:44 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:29 2008 -0700"
      },
      "message": "nfs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "46c8ac74250a396aca855e494f49a960797a6b5e",
      "tree": "aa02bcbc7f332f97c202ee14f8497dcb7b9aa992",
      "parents": [
        "3a6258e1fb5ff717dcefa04afc35f81aaae3f3e0"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri May 02 13:42:42 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:27 2008 -0700"
      },
      "message": "nfs/lsm: make NFSv4 set LSM mount options\n\nNFSv3 get_sb operations call into the LSM layer to set security options passed\nfrom userspace.  NFSv4 hooks were not originally added since it was reasonably\nlate in the merge window and NFSv3 was the only thing that had regressed (v4\nhas never supported any LSM options)\n\nThis patch makes NFSv4 call into the LSM to set security options rather than\njust blindly dropping them with no notice to the user as happens today.  This\npatch was tested in a simple NFSv4 environment with the context\u003d option and\nappeared to work as expected.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a6258e1fb5ff717dcefa04afc35f81aaae3f3e0",
      "tree": "2bf2cf66277f2400f5dee5f815f5fc1d57c4ffc1",
      "parents": [
        "38def50fabc479dc96ea6bd2cb2526e0dfc36fa4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 06 13:32:40 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:26 2008 -0700"
      },
      "message": "NFSv4: Check the return value of decode_compound_hdr_arg()\n\nIf decode_compound_hdr_arg() returns a resource error, then we cannot\nproceed to process the callback. Return a \u0027GARBAGE_ARGS\u0027 rpc-level error to\nthe caller instead.\nIf, however, the minor version field is incorrect, then we need to\npropagate the resulting NFS4ERR_MINOR_VERS_MISMATCH error back as the\ncompound status field (setting the nops field to 0).\n\nFinally, if encode_compound_hdr_res() returns an error, we need to return\nan RPC_SYSTEM_ERR to the caller.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "38def50fabc479dc96ea6bd2cb2526e0dfc36fa4",
      "tree": "c7327131526e59b35f639af91dbea3075b20445e",
      "parents": [
        "b0b539739fe9b7d75002412a787cfdf4efddbc33"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Thu May 01 20:03:22 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:23 2008 -0700"
      },
      "message": "nfs: fix race in nfs_dirty_request\n\nWhen called from nfs_flush_incompatible, the req is not locked, so\nreq-\u003ewb_page might be set to NULL before it is used by PageWriteback.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b0b539739fe9b7d75002412a787cfdf4efddbc33",
      "tree": "0b20f42bb8cdef9bba26c7ca0e4afe883e5c9c25",
      "parents": [
        "f26a3988917913b3d11b2bd741601a2c64ab9204"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 05 11:45:41 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 16 09:43:21 2008 -0700"
      },
      "message": "NFS: Ensure that \u0027noac\u0027 and/or \u0027actimeo\u003d0\u0027 turn off attribute caching\n\nBoth the \u0027noac\u0027 and \u0027actimeo\u003d0\u0027 mount options should ensure that attributes\nare not cached, however a bug in nfs_attribute_timeout() means that\ncurrently, the attributes may in fact get cached for up to one jiffy. This\nhas been seen to cause corruption in some applications.\n\nThe reason for the bug is that the time_in_range() test returns \u0027true\u0027 as\nlong as the current time lies between nfsi-\u003eread_cache_jiffies and\nnfsi-\u003eread_cache_jiffies + nfsi-\u003eattrtimeo. In other words, if jiffies\nequals nfsi-\u003eread_cache_jiffies, then we still cache the attribute data.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fa799759f9801137f665dbedda2c0815f1bf6f1b",
      "tree": "c921e2bcda0e2aa094aec1c3bbf4f89b319d4855",
      "parents": [
        "cf0ca9fe5dd9e3693d935757a7b2fc50fc576554"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:49 2008 -0700"
      },
      "message": "mm: bdi: expose the BDI object in sysfs for NFS\n\nRegister NFS\u0027 backing_dev_info under sysfs with the name \"nfs-MAJOR:MINOR\"\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34b37235c60fd23e4075da475c7bb22e6c7a466e",
      "tree": "4c651f02cc44cf0769f391919de458595149f801",
      "parents": [
        "9ef2db2630652d68dfd336088648adae7ef0bcd4"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Apr 29 01:02:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:20 2008 -0700"
      },
      "message": "nfs: use proc_create to setup de-\u003eproc_fops\n\nUse proc_create() to make sure that -\u003eproc_fops be setup before gluing PDE to\nmain tree.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36a5aeb8787fbf92510ed20d806e229c55726f93",
      "tree": "7e6efd56b357a3f66a72b3e0d7540116214db338",
      "parents": [
        "9c37066d888bf6e1b96ad12304971b3ddeabbad0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Apr 29 01:01:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:18 2008 -0700"
      },
      "message": "proc: remove proc_root_fs\n\nUse creation by full path instead: \"fs/foo\".\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42faad99658eed7ca8bd328ffa4bcb7d78c9bcca",
      "tree": "8b57fb69d1922939c6ba13f512a0ae54a3a171ef",
      "parents": [
        "78d31a3a87f84cf56004b7bc154831f2ee1186e8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:21:56 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 25 09:23:25 2008 -0400"
      },
      "message": "[PATCH] restore sane -\u003eumount_begin() API\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "563307b2fa15d687abc54bd980b9847ebf0e3231",
      "tree": "7f16be30217a2e66360ede97aa27d07a4ebd7e55",
      "parents": [
        "10c993a6b5418cb1026775765ba4c70ffb70853d",
        "233607dbbc823caf685e778cabc49fb7f679900b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 24 11:46:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 24 11:46:16 2008 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (80 commits)\n  SUNRPC: Invalidate the RPCSEC_GSS session if the server dropped the request\n  make nfs_automount_list static\n  NFS: remove duplicate flags assignment from nfs_validate_mount_data\n  NFS - fix potential NULL pointer dereference v2\n  SUNRPC: Don\u0027t change the RPCSEC_GSS context on a credential that is in use\n  SUNRPC: Fix a race in gss_refresh_upcall()\n  SUNRPC: Don\u0027t disconnect more than once if retransmitting NFSv4 requests\n  SUNRPC: Remove the unused export of xprt_force_disconnect\n  SUNRPC: remove XS_SENDMSG_RETRY\n  SUNRPC: Protect creds against early garbage collection\n  NFSv4: Attempt to use machine credentials in SETCLIENTID calls\n  NFSv4: Reintroduce machine creds\n  NFSv4: Don\u0027t use cred-\u003ecr_ops-\u003ecr_name in nfs4_proc_setclientid()\n  nfs: fix printout of multiword bitfields\n  nfs: return negative error value from nfs{,4}_stat_to_errno\n  NLM/lockd: Ensure client locking calls use correct credentials\n  NFS: Remove the buggy lock-if-signalled case from do_setlk()\n  NLM/lockd: Fix a race when cancelling a blocking lock\n  NLM/lockd: Ensure that nlmclnt_cancel() returns results of the CANCEL call\n  NLM: Remove the signal masking in nlmclnt_proc/nlmclnt_cancel\n  ...\n"
    },
    {
      "commit": "233607dbbc823caf685e778cabc49fb7f679900b",
      "tree": "13840137ee10788061cbec60fcfe8ea4c274558e",
      "parents": [
        "3dc5063786b273f1aee545844f6bd4e9651ebffe",
        "b48633bd086d21f4a2a5bea96c7e6c7ba58eb60c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 24 14:01:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 24 14:01:02 2008 -0400"
      },
      "message": "Merge branch \u0027devel\u0027\n"
    },
    {
      "commit": "06e02d66fa0055230efc2443c43ee4f3ab5eb0b6",
      "tree": "ef5fcba37b6d9805193b77bfa10466a03326b6ed",
      "parents": [
        "9078dc08143e23b18ea72e70265f0df920cf2998"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Apr 08 15:40:07 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:42 2008 -0400"
      },
      "message": "NFS: don\u0027t let nfs_callback_svc exit on unexpected svc_recv errors (try #2)\n\nWhen svc_recv returns an unexpected error, nfs_callback_svc will print a\nwarning and exit. This problematic for several reasons. In particular,\nit will cause the reference counts for the thread to be wrong, and no\nnew thread will be started until all nfs4 mounts are unmounted.\n\nRather than exiting on error from svc_recv, have the thread do a 1s\nsleep and then retry the loop. This is unlikely to cause any harm, and\nif the error turns out to be something temporary then it may be able to\nrecover.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e1ba1ab76e68de9f4a93fae8406627924efaed99",
      "tree": "464f54dd8f33162723db9708d8bfb6dc1b7dc791",
      "parents": [
        "3c61eecb607dbc2777074b1a95b8a97e31a96a73"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 07 13:09:47 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:42 2008 -0400"
      },
      "message": "nfsd: fix comment\n\nObvious comment nit.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a277e33cbe3fdfb9a77b448ea3043be22f000dfd",
      "tree": "2da3b18f69c7f2d8979a33c666977cd23592e98d",
      "parents": [
        "3ba1514815817f93a4f09615726dd4bcd0ddbbc9"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Feb 20 08:55:30 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "NFS: convert nfs4 callback thread to kthread API\n\nThere\u0027s a general push to convert kernel threads to use the (much\ncleaner) kthread API. This patch converts the NFSv4 callback kernel\nthread to the kthread API. In addition to being generally cleaner this\nalso removes the dependency on signals when shutting down the thread.\n\nNote that this patch depends on the recent patches to svc_recv() to\nmake it check kthread_should_stop() periodically. Those patches are\nin Bruce\u0027s tree at the moment and are slated for 2.6.26 along with\nthe lockd conversion, so this conversion is probably also appropriate\nfor 2.6.26.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "065f30ec14b1460c695b371bc44e068832a60d9b",
      "tree": "ff85eab4b7072497522c2dd33ca0edb3c201fcf5",
      "parents": [
        "f15364bd4cf8799a7677b6daeed7b67d9139d974"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Jan 19 13:58:23 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:37 2008 -0400"
      },
      "message": "nfs: remove unnecessary NFS_NEED_* defines\n\nThanks to Robert Day for pointing out that these two defines are unused.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Trond Myklebust \u003ctrond@netapp.com\u003eTrond Myklebust \u003ctrond@netapp.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"Robert P. J. Day\" \u003crpjday@crashcourse.ca\u003e\n"
    },
    {
      "commit": "a3dab293539031b0970585b9b355cebbc91ecbd4",
      "tree": "2ad3d7e8f051ab6cf7cefa3872eedf3eeed1247b",
      "parents": [
        "daa7da5fd3040e08e3d7878cd0667c1f4cfd338a"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Apr 14 21:41:32 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:29 2008 -0400"
      },
      "message": "make nfs_automount_list static\n\nnfs_automount_list can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "daa7da5fd3040e08e3d7878cd0667c1f4cfd338a",
      "tree": "72fa219ec1fb478ef272a7b14958fd4f933b80f5",
      "parents": [
        "63649bd7080a6a50fabcb1935f4b7c4e64155066"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Apr 11 11:50:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:25 2008 -0400"
      },
      "message": "NFS: remove duplicate flags assignment from nfs_validate_mount_data\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "63649bd7080a6a50fabcb1935f4b7c4e64155066",
      "tree": "84e398f5d3f191526dd511c112391befbd46dfda",
      "parents": [
        "cd019f7517206a74d8cdb64d5c82b1f76be608cc"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Thu Apr 17 20:42:09 2008 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:22 2008 -0400"
      },
      "message": "NFS - fix potential NULL pointer dereference v2\n\nThere is possible NULL pointer dereference if kstr[n]dup failed.\nSo fix them for safety.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a2b2bb8822c78806930bbb4d4c5bb3ae69648fd0",
      "tree": "a172b309f9ead2f81426eebdb28f3f1ecb75ce48",
      "parents": [
        "7c67db3a8a98045744f06fcd6d8f476d9df0ba5c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 08 16:02:17 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:59 2008 -0400"
      },
      "message": "NFSv4: Attempt to use machine credentials in SETCLIENTID calls\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c67db3a8a98045744f06fcd6d8f476d9df0ba5c",
      "tree": "4d0041249b48f9ac66560550e0e96c9c86c37891",
      "parents": [
        "78ea323be6380a9313e87fe241809e912e8ae401"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 20:50:11 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:56 2008 -0400"
      },
      "message": "NFSv4: Reintroduce machine creds\n\nWe need to try to ensure that we always use the same credentials whenever\nwe re-establish the clientid on the server. If not, the server won\u0027t\nrecognise that we\u0027re the same client, and so may not allow us to recover\nstate.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "78ea323be6380a9313e87fe241809e912e8ae401",
      "tree": "6ea9a772ab677012c52a08c6b32e366d7bf129d4",
      "parents": [
        "441092415770ddec648800701895913c4bfd60c1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 20:49:28 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:53 2008 -0400"
      },
      "message": "NFSv4: Don\u0027t use cred-\u003ecr_ops-\u003ecr_name in nfs4_proc_setclientid()\n\nWith the recent change to generic creds, we can no longer use\ncred-\u003ecr_ops-\u003ecr_name to distinguish between RPCSEC_GSS principals and\nAUTH_SYS/AUTH_NULL identities. Replace it with the rpc_authops-\u003eau_name\ninstead...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "441092415770ddec648800701895913c4bfd60c1",
      "tree": "dc74f31ba55b91114baee56e31c7db741220d5ec",
      "parents": [
        "856dff3d3875bdc8b88e4a65779873af76776a69"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Wed Apr 02 15:21:15 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:50 2008 -0400"
      },
      "message": "nfs: fix printout of multiword bitfields\n\nBenny points out that zero-padding of multiword bitfields is necessary,\nand that delimiting each word is nice to avoid endianess confusion.\n\nbhalevy: without zero padding output can be ambiguous. Also,\nsince the printed array of two 32-bit unsigned integers is not a\n64-bit number, delimiting the output with a semicolon makes more sense.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "856dff3d3875bdc8b88e4a65779873af76776a69",
      "tree": "03f10cfa3319df59987fa20b1e96902d96fdb4ee",
      "parents": [
        "d11d10cc05c94a32632d6928d15a1034200dd9a5"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Mar 31 17:39:06 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:47 2008 -0400"
      },
      "message": "nfs: return negative error value from nfs{,4}_stat_to_errno\n\nAll use sites for nfs{,4}_stat_to_errno negate their return value.\nIt\u0027s more efficient to return a negative error from the stat_to_errno convertors\nrather than negating its return value everywhere. This also produces slightly\nsmaller code.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c4d7c402b788b73dc24f1e54a57f89d3dc5eb7bc",
      "tree": "51c0e7fa84f7eff745dc17a7bffd81adb3d207d3",
      "parents": [
        "5f50c0c6d644d6c8180d9079c13c5d9de3adeb34"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 01 20:26:52 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:52 2008 -0400"
      },
      "message": "NFS: Remove the buggy lock-if-signalled case from do_setlk()\n\nBoth NLM and NFSv4 should be able to clean up adequately in the case where\nthe user interrupts the RPC call...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "536ff0f809b0f4d56e1c41e66768d330668e0a55",
      "tree": "fa2b17cc442227d5157b644d8b3fe188b4922983",
      "parents": [
        "4a9af59fee0701d9db99bc148d87b8852d6d6dd8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 04 15:08:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:33 2008 -0400"
      },
      "message": "NFSv4: Ensure we don\u0027t corrupt fl-\u003efl_flags in nfs4_proc_unlck\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1d519312dcdf11532fed9f99a8ecc3547ffd9d6",
      "tree": "f91e0d8df3fc424aaa6eddbc54aaf55bdbfb245b",
      "parents": [
        "35d05778e25ee16dbddb60331be0bc1309efba19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 13:20:54 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:15 2008 -0400"
      },
      "message": "NFSv4: Only increment the sequence id if the server saw it\n\nIt is quite possible that the OPEN, CLOSE, LOCK, LOCKU,... compounds fail\nbefore the actual stateful operation has been executed (for instance in the\nPUTFH call). There is no way to tell from the overall status result which\noperations were executed from the COMPOUND.\n\nThe fix is to move incrementing of the sequence id into the XDR layer,\nso that we do it as we process the results from the stateful operation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "35d05778e25ee16dbddb60331be0bc1309efba19",
      "tree": "81997edb4131763212dfba51ae4d94518decfef2",
      "parents": [
        "dbae4c73f08b8a7980cc912954ade3d4c1fb6147"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 05 15:54:17 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:12 2008 -0400"
      },
      "message": "NFSv4: Remove bogus call to nfs4_drop_state_owner() in _nfs4_open_expired()\n\nThere should be no need to invalidate a perfectly good state owner just\nbecause of a stale filehandle. Doing so can cause the state recovery code\nto break, since nfs4_get_renew_cred() and nfs4_get_setclientid_cred() rely\non finding active state owners.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dbae4c73f08b8a7980cc912954ade3d4c1fb6147",
      "tree": "8a1ddd0b9df5ae7e919a235e9c765266d68a0e3f",
      "parents": [
        "c9d8f89d9816c1d16ada492aa547a4d692508c0d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 14 14:54:53 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:08 2008 -0400"
      },
      "message": "NFS: Ensure that rpc_run_task() errors are propagated back to the caller\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c9d8f89d9816c1d16ada492aa547a4d692508c0d",
      "tree": "d85339019cff084c11d4fceaf194fc5e34588d61",
      "parents": [
        "fdd1e74c89fe39259a29c494209abad63ff76f82"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 15 16:56:39 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:05 2008 -0400"
      },
      "message": "NFS: Ensure that the write code cleans up properly when rpc_run_task() fails\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdd1e74c89fe39259a29c494209abad63ff76f82",
      "tree": "7ec3708b7b7badeb20f705cf865afbb9c63b5406",
      "parents": [
        "73e3302f60c0e11a0db0b34b903f591139c4f937"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 15 16:33:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:01 2008 -0400"
      },
      "message": "NFS: Ensure that the read code cleans up properly when rpc_run_task() fails\n\nIn the case of readpage() we need to ensure that the pages get unlocked,\nand that the error is flagged.\n\nIn the case of O_DIRECT, we need to ensure that the pages are all released.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "73e3302f60c0e11a0db0b34b903f591139c4f937",
      "tree": "7f1a4be9e1b534bf9eb87fabaa1a15e468221a9e",
      "parents": [
        "080a1f148df0615f7a610e4776dd8f3fb706f54f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 11 16:03:54 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:52:58 2008 -0400"
      },
      "message": "NFS: Fix nfs_wb_page() to always exit with an error or a clean page\n\nIt is possible for nfs_wb_page() to sometimes exit with 0 return value, yet\nthe page is left in a dirty state.\nFor instance in the case where the server rebooted, and the COMMIT request\nfailed, then all the previously \"clean\" pages which were cached by the\nserver, but were not guaranteed to have been writted out to disk,\nhave to be redirtied and resent to the server.\nThe fix is to have nfs_wb_page_priority() check that the page is clean\nbefore it exits...\n\nThis fixes a condition that triggers the BUG_ON(PagePrivate(page)) in\nnfs_create_request() when we\u0027re in the nfs_readpage() path.\n\nAlso eliminate a redundant BUG_ON(!PageLocked(page)) while we\u0027re at it. It\nturns out that clear_page_dirty_for_io() has the exact same test.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c463e95480829a2fe8f386589516e13b1289db6",
      "tree": "7294d93a15f62ccc2c649ef9782b7f85ae7d1ef8",
      "parents": [
        "ec82687f29127a954dd0da95dc1e0a4ce92b560c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:56 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:27 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: check mnt instead of superblock directly\n\nIf we depend on the inodes for writeability, we will not catch the r/o mounts\nwhen implemented.\n\nThis patches uses __mnt_want_write().  It does not guarantee that the mount\nwill stay writeable after the check.  But, this is OK for one of the checks\nbecause it is just for a printk().\n\nThe other two are probably unnecessary and duplicate existing checks in the\nVFS.  This won\u0027t make them better checks than before, but it will make them\ndetect r/o mounts.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "240ee831187e000704cba3208ef6b0a8ad49bd64",
      "tree": "185d0a366d121ca0dd58cd382696b4bc01452165",
      "parents": [
        "66d3aac04175c35564cc5982934b68bc4f89a76d"
      ],
      "author": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Tue Apr 01 20:23:39 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 08 21:06:56 2008 -0400"
      },
      "message": "fix bug - executing FDPIC ELF on NFS mount triggers BUG() at mm/nommu.c:862:/do_mmap_private()\n\nNFS needs a NOMMU version mmap function to support uClinux on NOMMU machine\nhttp://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action\u003dTrackerItemEdit\u0026tracker_id\u003d141\u0026tracker_item_id\u003d3992\n\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nCc: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "66d3aac04175c35564cc5982934b68bc4f89a76d",
      "tree": "0b71ad81894f9d0beb0384691d50db71788f5504",
      "parents": [
        "daeba89d43af0fa469d38a4ccdc32fff8ca17c2e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Mar 31 15:01:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 08 21:06:53 2008 -0400"
      },
      "message": "NFS: initialize flags field in nfs_open_context\n\nThe nfs_open_context struct had a \"flags\" field added recently, but the\nallocator isn\u0027t initializing it. It also looks like the allocator isn\u0027t\ninitializing the mode or list either, but they seem to be overwritten\nby the caller, so that\u0027s less of an issue.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c35038becad0adb0e25261fff66d85b1a6ddd0c2",
      "tree": "1d375d74ef5b4c3641768697b2ff8f4992916dc5",
      "parents": [
        "bcc5c7d2b692e5319db00b0dd020ce98723103b1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 00:46:23 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 27 20:47:58 2008 -0400"
      },
      "message": "[PATCH] do shrink_submounts() for all fs types\n\n... and take it out of -\u003eumount_begin() instances.  Call with all locks\nalready taken (by do_umount()) and leave calling release_mounts() to\ncaller (it will do release_mounts() anyway, so we can just put into\nthe same list).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7d3628b230ecbdc29566c18bc7800ff8ed66a71f",
      "tree": "eac1bff40bdb655fdfdeaf1e22ce12a81296f1fb",
      "parents": [
        "2c7871982cf27caaddbaeb7e2121ce1374b520ff",
        "94833dfb8c98ed4ca1944dd2c1339d88a2d1c758"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 21 07:57:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 21 07:57:45 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (46 commits)\n  [NET] ifb: set separate lockdep classes for queue locks\n  [IPV6] KCONFIG: Fix description about IPV6_TUNNEL.\n  [TCP]: Fix shrinking windows with window scaling\n  netpoll: zap_completion_queue: adjust skb-\u003eusers counter\n  bridge: use time_before() in br_fdb_cleanup()\n  [TG3]: Fix build warning on sparc32.\n  MAINTAINERS: bluez-devel is subscribers-only\n  audit: netlink socket can be auto-bound to pid other than current-\u003epid (v2)\n  [NET]: Fix permissions of /proc/net\n  [SCTP]: Fix a race between module load and protosw access\n  [NETFILTER]: ipt_recent: sanity check hit count\n  [NETFILTER]: nf_conntrack_h323: logical-bitwise \u0026 confusion in process_setup()\n  [RT2X00] drivers/net/wireless/rt2x00/rt2x00dev.c: remove dead code, fix warning\n  [IPV4]: esp_output() misannotations\n  [8021Q]: vlan_dev misannotations\n  xfrm: -\u003eeth_proto is __be16\n  [IPV4]: ipv4_is_lbcast() misannotations\n  [SUNRPC]: net/* NULL noise\n  [SCTP]: fix misannotated __sctp_rcv_asconf_lookup()\n  [PKT_SCHED]: annotate cls_u32\n  ...\n"
    },
    {
      "commit": "ecfc555a8327ff09b07066d73a98c04115007eec",
      "tree": "304691e77d21b8cecfd529eddfdfb2ba3fdfac31",
      "parents": [
        "82d101d58a2312297ee79f96d44c1d8c7fe1032d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:14:56 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:34 2008 -0400"
      },
      "message": "NFS: Always enable NFS direct I/O\n\nSince O_DIRECT is a standard feature that is enabled in most distros,\neliminate the CONFIG_NFS_DIRECTIO build option, and change the\nfs/nfs/Makefile to always build in the NFS direct I/O engine.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82d101d58a2312297ee79f96d44c1d8c7fe1032d",
      "tree": "f2a94db2eabe5d2904fc24f3504deae5f86b079d",
      "parents": [
        "3f8400d1f1f9d5fb175bdbf6236e564dde454f28"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:10:37 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:29 2008 -0400"
      },
      "message": "NFS: Show most mount options via nfs_show_options()\n\nDisplay all mount options in /proc/mount which may be needed to reconstruct\na previous mount.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3f8400d1f1f9d5fb175bdbf6236e564dde454f28",
      "tree": "c5a15b86b049c60367ee525a05a4bc76d0a3b825",
      "parents": [
        "f22d6d79fe227245363a8849ea8c85fe6c6598c3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:10:30 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:22 2008 -0400"
      },
      "message": "NFS: Save the values of the \"mount*\u003d\" mount options\n\nSave the value of the mountproto\u003d mountport\u003d mountvers\u003d and mountaddr\u003d\noptions so that these values can be displayed later via\nnfs_show_options().\n\nThis preserves the intent of the original mount options, should the file\nsystem need to be remounted based on what\u0027s displayed in /proc/mounts.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f22d6d79fe227245363a8849ea8c85fe6c6598c3",
      "tree": "5496ddd3e912a399e0be9a7116fc1a66d6c79a10",
      "parents": [
        "78fa701f341564e60461de91cd08ff5f7fb09b31"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:10:22 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:19 2008 -0400"
      },
      "message": "NFS: Save the value of the \"port\u003d\" mount option\n\nDuring a remount based on the mount options displayed in /proc/mounts, we\nwant to preserve the original behavior of the mount request.  Let\u0027s save\nthe original setting of the \"port\u003d\" mount option in the mount\u0027s nfs_server\nstructure.\n\nThis allows us to simplify the default behavior of port setting for NFSv4\nmounts: by default, NFSv2/3 mounts first try an RPC bind to determine the\nNFS server\u0027s port, unless the user specified the \"port\u003d\" mount option;\nUsers can force the client to skip the RPC bind by explicitly specifying\n\"port\u003d\u003cvalue\u003e\".\n\nNFSv4, by contrast, assumes the NFS server port is 2049 and skips the RPC\nbind, unless the user specifies \"port\u003d\".  Users can force an RPC bind for\nNFSv4 by explicitly specifying \"port\u003d0\".\n\nI added a couple of extra comments to clarify this behavior.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "78fa701f341564e60461de91cd08ff5f7fb09b31",
      "tree": "f4f3b7bda53af1e016778c9612ccd97097842366",
      "parents": [
        "2d76743227028a26f884284aade03d1e43f4f249"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:10:15 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:16 2008 -0400"
      },
      "message": "NFS: Fix up data types of fields in nfs_parsed_mount_options\n\nClean up: make data types of fields in nfs_parsed_mount_options more\nconsistent with other uses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2d76743227028a26f884284aade03d1e43f4f249",
      "tree": "9e32332e4f7945fead1964fe7b9e568b3dd64940",
      "parents": [
        "7bda2cdf484a00e52b0ed925e99d4bf4696b2c7a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:10:08 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:13 2008 -0400"
      },
      "message": "NFS: numeric mount parameters are unsigned\n\nClean up: use %u instead of %d when displaying NFS mount options.\n\nNit: Fix reporting of \"namlen\u003d\" option in nfs_show_mount_stats.  The mount\noption is called \"namlen\" without the \"e\".\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7bda2cdf484a00e52b0ed925e99d4bf4696b2c7a",
      "tree": "021f419b3007a8f300959c974ae40e609672deee",
      "parents": [
        "643f81115baca3630e544f6874567648b605efae"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Feb 22 14:50:01 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:10 2008 -0400"
      },
      "message": "NFS: clean up short packet handling for NFSv4 readdir\n\nCurrently, the NFS readdir decoders have a workaround for buggy servers\nthat send an empty readdir response with the EOF bit unset. If the\nserver sends a malformed response in some cases, this workaround kicks\nin and just returns an empty response rather than returning a proper\nerror to the caller.\n\nThis patch does 3 things:\n\n1) have malformed responses with no entries return error (-EIO)\n\n2) preserve existing workaround for servers that send empty\n   responses with the EOF marker unset.\n\n3) Add some comments to clarify the logic in decode_readdir().\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "643f81115baca3630e544f6874567648b605efae",
      "tree": "a9eaf544811df5474b8fbf655d1e176b9f7bdfc9",
      "parents": [
        "caa02bd540618e4b447a1f776363ba27c4c79090"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Feb 22 14:50:00 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:06 2008 -0400"
      },
      "message": "NFS: clean up short packet handling for NFSv3 readdir\n\nCurrently, the NFS readdir decoders have a workaround for buggy servers\nthat send an empty readdir response with the EOF bit unset. If the\nserver sends a malformed response in some cases, this workaround kicks\nin and just returns an empty response rather than returning a proper\nerror to the caller.\n\nThis patch does 3 things:\n\n1) have malformed responses with no entries return error (-EIO)\n\n2) preserve existing workaround for servers that send empty\n   responses with the EOF marker unset.\n\n3) Add some comments to clarify the logic in nfs3_xdr_readdirres().\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "caa02bd540618e4b447a1f776363ba27c4c79090",
      "tree": "08e275f99c4b049d17ed4f202c0d7e7c5bc56813",
      "parents": [
        "4af68bffac444a23f027e18ff244101e63b79227"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Feb 22 14:49:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:03 2008 -0400"
      },
      "message": "NFS: clean up short packet handling for NFSv2 readdir\n\nCurrently, the NFS readdir decoders have a workaround for buggy servers\nthat send an empty readdir response with the EOF bit unset. If the\nserver sends a malformed response in some cases, this workaround kicks\nin and just returns an empty response rather than returning a proper\nerror to the caller.\n\nThis patch does 3 things:\n\n1) have malformed responses with no entries return error (-EIO)\n\n2) preserve existing workaround for servers that send empty\n   responses with the EOF marker unset.\n\n3) Add some comments to clarify the logic in nfs_xdr_readdirres().\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4af68bffac444a23f027e18ff244101e63b79227",
      "tree": "b420ed303d851933af8338608500cb2e284f3789",
      "parents": [
        "6d884e8fc8114dc8877218f06a9a9a1d801901e4"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Wed Mar 19 11:54:04 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 17:59:59 2008 -0400"
      },
      "message": "nfs: remove duplicate initializations of nfs_read_data field\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6d884e8fc8114dc8877218f06a9a9a1d801901e4",
      "tree": "091b9ab3ae2fe7dfbb15b28573d173a21e44dc1f",
      "parents": [
        "c7c350e92aab1bba68f26a6027b734adcf9824ba"
      ],
      "author": {
        "name": "Fred",
        "email": "iisaman@citi.umich.edu",
        "time": "Wed Mar 19 11:24:38 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 17:59:56 2008 -0400"
      },
      "message": "nfs: nfs_redirty_request\n\nBoth flush functions have the same error handling routine.  Pull\nit out as a function.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c7c350e92aab1bba68f26a6027b734adcf9824ba",
      "tree": "aa99bd94c3049dd871d9c030d70a5f3d87591a95",
      "parents": [
        "2f42b5d043ee271d1e5d30ecd77186b6c4d4e534",
        "f8512ad0da16cbe156f3a7627971cdf0b39c4138"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 17:59:44 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 17:59:44 2008 -0400"
      },
      "message": "Merge branch \u0027hotfixes\u0027 into devel\n"
    },
    {
      "commit": "f8512ad0da16cbe156f3a7627971cdf0b39c4138",
      "tree": "2658c63faeda07505793ccc747ee4efbffdaa69c",
      "parents": [
        "264e3e889d86e552b4191d69bb60f4f3b383135a"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Wed Mar 19 11:24:39 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 17:59:02 2008 -0400"
      },
      "message": "nfs: don\u0027t ignore return value from nfs_pageio_add_request\n\nIgnoring the return value from nfs_pageio_add_request can cause deadlocks.\n\nIn read path:\n  call nfs_pageio_add_request from readpage_async_filler\n  assume at this point that there are requests already in desc, that\n    can\u0027t be merged with the current request.\n  so nfs_pageio_doio is fired up to clear out desc.\n  assume something goes wrong in setting up the io, so desc-\u003epg_error is set.\n  This causes nfs_pageio_add_request to return 0, *WITHOUT* adding the original\n    request.\n  BUT, since return code is ignored, readpage_async_filler assumes it has\n    been added, and does nothing further, leaving page locked.\n  do_generic_mapping_read will eventually call lock_page, resulting in deadlock\n\nIn write path:\n  page is marked dirty by generic_perform_write\n  nfs_writepages is called\n  call nfs_pageio_add_request from nfs_page_async_flush\n  assume at this point that there are requests already in desc, that\n    can\u0027t be merged with the current request.\n  so nfs_pageio_doio is fired up to clear out desc.\n  assume something goes wrong in setting up the io, so desc-\u003epg_error is set.\n  This causes nfs_page_async_flush to return 0, *WITHOUT* adding the original\n    request, yet marking the request as locked (PG_BUSY) and in writeback,\n    clearing dirty marks.\n  The next time a write is done to the page, deadlock will result as\n    nfs_write_end calls nfs_update_request\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f633928cbba8a5858bb39b11e7219a41b0fbef5",
      "tree": "9a82f4b7f2c3afe4b0208d8e44ea61bae90a7d22",
      "parents": [
        "5e226e4d9016daee170699f8a4188a5505021756",
        "bde4f8fa8db2abd5ac9c542d76012d0fedab050f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 17 23:44:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 17 23:44:31 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "e6f1cebf71c4e7aae7dfa43414ce2631291def9f",
      "tree": "a3abf6bb3e63f2ecea1a4e05bf8d288d920acb17",
      "parents": [
        "fc4d30a6fc88121081916faef930d8c3e4ed6036"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 17 22:44:53 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 17 22:44:53 2008 -0700"
      },
      "message": "[NET] endianness noise: INADDR_ANY\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f42b5d043ee271d1e5d30ecd77186b6c4d4e534",
      "tree": "4abafc6f0d732a1e68ba40ecfa578c25a3054a31",
      "parents": [
        "98a8e3239427051f5d44f2025b398bdcc3918f37"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Thu Mar 13 15:26:30 2008 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:47:17 2008 -0400"
      },
      "message": "NFS: fix encode_fsinfo_maxsz\n\nThe previous value was not taking into account space for bitmap array size.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "98a8e3239427051f5d44f2025b398bdcc3918f37",
      "tree": "aa3e6ba69dbf8575c2c6e10c013aa23d7d638af0",
      "parents": [
        "5c691044ecbca04dd558fca4c754121689fe1b34"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 12:25:28 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:49 2008 -0400"
      },
      "message": "SUNRPC: Add a helper rpcauth_lookup_generic_cred()\n\nThe NFSv4 protocol allows clients to negotiate security protocols on the\nfly in the case where an administrator on the server changes the export\nsettings and/or in the case where we may have a filesystem migration event.\n\nInstead of having the NFS client code cache credentials that are tied to a\nparticular AUTH method it is therefore preferable to have a generic credential\nthat can be converted into whatever AUTH is in use by the RPC client when\nthe read/write/sillyrename/... is put on the wire.\n\nWe do this by means of the new \"generic\" credential, which basically just\ncaches the minimal information that is needed to look up an RPCSEC_GSS,\nAUTH_SYS, or AUTH_NULL credential.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9446389ef612096704fdf18fa79bab423d4110f0",
      "tree": "3e4fda7270be58ae176d20d318e61fb115b325b5",
      "parents": [
        "cdd0972945dbcb8ea24db365d9b0e100af2a27bb",
        "84c6f6046c5a2189160a8f0dca8b90427bf690ea"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 08 11:49:24 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 08 11:49:24 2008 -0500"
      },
      "message": "Merge commit \u0027origin\u0027 into devel\n"
    },
    {
      "commit": "4c1aa6f8b9686ddc7221f0f3b63f9b7dd1467543",
      "tree": "8774d2a82e5a3682e863eb9e1ae34fd7aed8ac94",
      "parents": [
        "5d49c101a126808a38f2a1f4eedc1fd28233e37f",
        "4e99a1ff3410c627a428d5ddb6cd2e7bc908a486"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 07 12:08:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 07 12:08:07 2008 -0800"
      },
      "message": "Merge branch \u0027hotfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027hotfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix dentry revalidation for NFSv4 referrals and mountpoint crossings\n  NFS: Fix the fsid revalidation in nfs_update_inode()\n  SUNRPC: Fix a nfs4 over rdma transport oops\n  NFS: Fix an f_mode/f_flags confusion in fs/nfs/write.c\n"
    },
    {
      "commit": "4e99a1ff3410c627a428d5ddb6cd2e7bc908a486",
      "tree": "ad22bf99412be3470ebe3a3dde51172826eb7a1a",
      "parents": [
        "c37dcd334c0b0a46a90cfa13b9f69e2aaa89bc09"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 06 12:34:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 07 14:35:41 2008 -0500"
      },
      "message": "NFS: Fix dentry revalidation for NFSv4 referrals and mountpoint crossings\n\nAs long as the directory contents haven\u0027t changed, we should just let the\npath walk proceed to cross the mountpoint. Apart from being an optimisation\nin the case of \u0027nohide\u0027 mountpoint traversals, it also fixes an issue with\nreferrals: referral inodes don\u0027t have valid filehandles, so calling\nnfs_revalidate_inode() on them is a bug.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c37dcd334c0b0a46a90cfa13b9f69e2aaa89bc09",
      "tree": "0792bbc64fff676c76a696a76a9f703cd9500145",
      "parents": [
        "ee1a2c564f67407947e89f1dac75ac0af0ba88c7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 06 12:34:50 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 07 14:35:37 2008 -0500"
      },
      "message": "NFS: Fix the fsid revalidation in nfs_update_inode()\n\nWhen we detect that we\u0027ve crossed a mountpoint on the remote server, we\nmust take care not to use that inode to revalidate the fsid on our\ncurrent superblock. To do so, we label the inode as a remote mountpoint,\nand check for that in nfs_update_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "af1b8c2ff7c337c4e96db12d6b7b61eaa91aa069",
      "tree": "5de8a786af7abdc9e26f59ebd8b1639e85745591",
      "parents": [
        "bfa274e2436fc7ef72ef51c878083647f1cfd429"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 15:56:29 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 07 14:33:40 2008 -0500"
      },
      "message": "NFS: Fix an f_mode/f_flags confusion in fs/nfs/write.c\n\nO_SYNC is stored in filp-\u003ef_flags.\nThanks to Al Viro for pointing out the bug.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f9c3a3802119a2d30f3e4a69aef30a81e09d0209",
      "tree": "e777be38afbbec60e3c366169395b9fca7226540",
      "parents": [
        "e0007529893c1c064be90bd21422ca0da4a0198e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Mar 05 14:20:18 2008 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Mar 06 08:40:59 2008 +1100"
      },
      "message": "NFS: use new LSM interfaces to explicitly set mount options\n\nNFS and SELinux worked together previously because SELinux had NFS\nspecific knowledge built in.  This design was approved by both groups\nback in 2004 but the recent NFS changes to use nfs_parsed_mount_data and\nthe usage of nfs_clone_mount_data showed this to be a poor fragile\nsolution.  This patch fixes the NFS functionality regression by making\nuse of the new LSM interfaces to allow an FS to explicitly set its own\nmount options.\n\nThe explicit setting of mount options is done in the nfs get_sb\nfunctions which are called before the generic vfs hooks try to set mount\noptions for filesystems which use text mount data.\n\nThis does not currently support NFSv4 as that functionality did not\nexist in previous kernels and thus there is no regression.  I will be\nadding the needed code, which I believe to be the exact same as the v3\ncode, in nfs4_get_sb for 2.6.26.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "cdd0972945dbcb8ea24db365d9b0e100af2a27bb",
      "tree": "d41204db20ccc81cecf99a332e2fa764075e8637",
      "parents": [
        "5e4424af9a1f062c6451681dff24a26e27741cc6",
        "cbc20059259edee4ea24c923e6627c394830c972"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:48:05 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:48:05 2008 -0800"
      },
      "message": "Merge branch \u0027cleanups\u0027 into next\n"
    },
    {
      "commit": "5e4424af9a1f062c6451681dff24a26e27741cc6",
      "tree": "fcba54a8fc2d94c1d691ab5b8b956ac71b5cb8d4",
      "parents": [
        "ff2d7db848f8db7cade39e55f78f86d77e0de01a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:53:49 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:28 2008 -0800"
      },
      "message": "SUNRPC: Remove now-redundant RCU-safe rpc_task free path\n\nNow that we\u0027ve tightened up the locking rules for RPC queue wakeups, we can\nremove the RCU-safe kfree calls...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f6a1cc89309f0ae847a9b6fe418d1c4215e5bc55",
      "tree": "4f5d585dd901718d66d9c354625f9a0bc85c234d",
      "parents": [
        "5d00837b90340af9106dcd93af75fd664c8eb87f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 17:06:55 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:17:27 2008 -0800"
      },
      "message": "SUNRPC: Add a (empty for the moment) destructor for rpc_wait_queues\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d00837b90340af9106dcd93af75fd664c8eb87f",
      "tree": "f537dc84421cf150d66b630e56ea8107078c07a8",
      "parents": [
        "fda1393938035559b417dd5b26b9cc293a7aee00"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 16:34:17 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:44 2008 -0800"
      },
      "message": "SUNRPC: Run rpc timeout functions as callbacks instead of in softirqs\n\nAn audit of the current RPC timeout functions shows that they don\u0027t really\never need to run in the softirq context. As long as the softirq is\nable to signal that the wakeup is due to a timeout (which it can do by\nsetting task-\u003etk_status to -ETIMEDOUT) then the callback functions can just\nrun as standard task-\u003etk_callback functions (in the rpciod/process\ncontext).\n\nThe only possible border-line case would be xprt_timer() for the case of\nUDP, when the callback is used to reduce the size of the transport\ncongestion window. In testing, however, the effect of moving that update\nto a callback would appear to be minor.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fda1393938035559b417dd5b26b9cc293a7aee00",
      "tree": "8190a6ad7a81974dd5f782f2ab872753742ff68d",
      "parents": [
        "96ef13b283934fbf60b732e6c4ce23e8babd0042"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 16:34:12 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:42 2008 -0800"
      },
      "message": "SUNRPC: Convert users of rpc_wake_up_task to use rpc_wake_up_queued_task\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "101070ca2fe67186f5f5517b66cb4757b17f4e29",
      "tree": "b131c97e3033fc4c848e8cb3d76f675735b95085",
      "parents": [
        "5746006f1d17d9d5a3015051ea54de4341cb31f9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 19 20:04:23 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:37 2008 -0800"
      },
      "message": "NFS: Ensure that the asynchronous RPC calls complete on nfsiod.\n\nWe want to ensure that rpc_call_ops that involve mntput() are run on nfsiod\nrather than on rpciod, so that they don\u0027t deadlock when the resulting\numount calls rpc_shutdown_client(). Hence we specify that read, write and\ncommit calls must complete on nfsiod.\nDitto for NFSv4 open, lock, locku and close asynchronous calls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5746006f1d17d9d5a3015051ea54de4341cb31f9",
      "tree": "fc1d03a1e58a0a0a3cc03c46cbebdebf8cfe054e",
      "parents": [
        "32bfb5c0f495dd88ef6bac4b76885d0820563739"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 19 20:04:22 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:36 2008 -0800"
      },
      "message": "NFS: Add an nfsiod workqueue\n\nNFS post-rpciod cleanups often involve tasks that cannot be safely\nperformed within the rpciod context (due to deadlock concerns). We\ntherefore add a dedicated NFS workqueue that can perform tasks like\ncleaning up state after an interrupted NFSv4 open() call, or calling\nput_nfs_open_context() after an asynchronous read or write call.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "383ba71938519959be8e0b598ec658f0c211ff45",
      "tree": "01eb0155676fe69d40f01dc137ea3be952d88997",
      "parents": [
        "4b5621f6b127bce9218998c187bd25bf7f9fc371"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 19 20:04:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:33 2008 -0800"
      },
      "message": "NFS: Fix a deadlock with lazy umount\n\nWe can\u0027t allow rpc callback functions like task-\u003etk_ops-\u003erpc_call_prepare()\nand task-\u003etk_ops-\u003erpc_call_done() to call mntput() in any way, since\nthat will cause a deadlock when the call to rpc_shutdown_client() attempts\nto wait on \u0027task\u0027 to complete.\n\nWe can avoid the above deadlock by moving calls to mntput to\ntask-\u003etk_ops-\u003erpc_release() callback, since at that time the task will be\nmarked as completed, and so rpc_shutdown_client won\u0027t attempt to wait on\nit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b5621f6b127bce9218998c187bd25bf7f9fc371",
      "tree": "5de8a786af7abdc9e26f59ebd8b1639e85745591",
      "parents": [
        "bfa274e2436fc7ef72ef51c878083647f1cfd429"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 15:56:29 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 15:56:29 2008 -0800"
      },
      "message": "NFS: Fix an f_mode/f_flags confusion in fs/nfs/write.c\n\nO_SYNC is stored in filp-\u003ef_flags.\nThanks to Al Viro for pointing out the bug.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5216a8e70e25b01cbd2915cd0442fb96deb2c262",
      "tree": "f372bd3cb3fc2f4a2d3e4ad303e6c4d3f8f48865",
      "parents": [
        "90dc7d2796edf94a9eaa838321a9734c8513e717"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 21 10:57:45 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 21 18:42:29 2008 -0500"
      },
      "message": "Wrap buffers used for rpc debug printks into RPC_IFDEBUG\n\nSorry for the noise, but here\u0027s the v3 of this compilation fix :)\n\nThere are some places, which declare the char buf[...] on the stack\nto push it later into dprintk(). Since the dprintk sometimes (if the\nCONFIG_SYSCTL\u003dn) becomes an empty do { } while (0) stub, these buffers\ncause gcc to produce appropriate warnings.\n\nWrap these buffers with RPC_IFDEBUG macro, as Trond proposed, to\ncompile them out when not needed.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90dc7d2796edf94a9eaa838321a9734c8513e717",
      "tree": "818c8899555efa3f5598f1ee9aa1fd5a5264c6c4",
      "parents": [
        "1227a74e2e0217a4ca155d1677bdbf5f69e32bed"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 20 13:03:05 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 20 16:15:44 2008 -0500"
      },
      "message": "nfs: fix sparse warnings\n\nfs/nfs/nfs4state.c:788:34: warning: Using plain integer as NULL pointer\nfs/nfs/delegation.c:52:34: warning: Using plain integer as NULL pointer\nfs/nfs/idmap.c:312:12: warning: Using plain integer as NULL pointer\nfs/nfs/callback_xdr.c:257:6: warning: Using plain integer as NULL pointer\nfs/nfs/callback_xdr.c:270:6: warning: Using plain integer as NULL pointer\nfs/nfs/callback_xdr.c:281:6: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1227a74e2e0217a4ca155d1677bdbf5f69e32bed",
      "tree": "5be4e69ea8f008ec488ac0980470f6acc1da9029",
      "parents": [
        "5d9c4a7de64d398604a978d267a6987f1f4025b7"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 19 12:51:35 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 20 13:32:43 2008 -0500"
      },
      "message": "NFS: flush signals before taking down callback thread\n\nNow that the reference counting on the callback thread is working as\nexpected, it uncovers another problem.  Peter Staubach noticed while\ntesting that patch on an older kernel that he would occasionally see\nthis printk in rpc_register fire:\n\n    \"RPC: failed to contact portmap (errno -512).\n\nThe NFSv4 callback thread is signaled by nfs_callback_down(), but never\nflushes that signal. All of the shutdown processing is done with that\nsignal pending. This makes it fail the call to unregister the port with\nthe portmapper.\n\nIn actuality, this rpc_register call isn\u0027t necessary at all since the\nport isn\u0027t actually registered with the portmapper anymore. Regardless,\nthere doesn\u0027t seem to be any reason to leave the signal pending while\nthe thread is being shut down and flushing it should generally silence\nthat printk.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52833e897fd8c6f62b3e5e27291fa9bc803f7460",
      "tree": "cfe90047ee6c7402674a29ec7258319142b96ff1",
      "parents": [
        "8d042218b075de3cdbe066198515b3521553746e",
        "4ee29f6a52158cea526b16a44ae38643946103ec"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 15 13:36:30 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 15 13:36:30 2008 -0500"
      },
      "message": "Merge branch \u0027linus_origin\u0027 into hotfixes\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2785259631697ebb0749a3782cca206e2e542939",
      "tree": "607c61275106a281db0522e0f9b7bed12655c17b",
      "parents": [
        "8d042218b075de3cdbe066198515b3521553746e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 04 23:48:37 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 13 23:24:09 2008 -0500"
      },
      "message": "nfs: use GFP_NOFS preloads for radix-tree insertion\n\nNFS should use GFP_NOFS mode radix tree preloads rather than GFP_ATOMIC\nallocations at radix-tree insertion-time.  This is important to reduce the\natomic memory requirement.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8d042218b075de3cdbe066198515b3521553746e",
      "tree": "fa7ee46b2702d60e8b06b435581b8cab3addd31a",
      "parents": [
        "25606656b19a38bbece914c4c67101f674908f49"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Wed Feb 13 16:47:06 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 13 23:24:08 2008 -0500"
      },
      "message": "NFS: add missing spkm3 strings to mount option parser\n\nThis patch adds previous missing spkm3 string values that are needed\nto parse mount options in the kernel.\n"
    },
    {
      "commit": "25606656b19a38bbece914c4c67101f674908f49",
      "tree": "216fee9dd03ae07c27f4247c24090af82526aa56",
      "parents": [
        "497799e7c0ac7e82164a510ebf8beed7b3635e34"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 12 06:49:01 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 13 23:24:07 2008 -0500"
      },
      "message": "NFS: remove error field from nfs_readdir_descriptor_t\n\nThe error field in nfs_readdir_descriptor_t is never used outside of the\nfunction in which it is set. Remove the field and change the place that\ndoes use it to use an existing local variable.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "497799e7c0ac7e82164a510ebf8beed7b3635e34",
      "tree": "3ab230be78d8e36795b1632437139de5a913d49b",
      "parents": [
        "4267c9561d9c3bb2abf45abed9c75a1c892d7d15"
      ],
      "author": {
        "name": "Dan Muntz",
        "email": "dmuntz@netapp.com",
        "time": "Wed Feb 13 13:09:35 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 13 23:24:06 2008 -0500"
      },
      "message": "NFS: missing spaces in KERN_WARNING\n\nThe warning message for a v4 server returning various bad sequence-ids is\nmissing spaces.\n\nSigned-off-by: Dan Muntz \u003cdmuntz@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8e60029f403781b8a63b7ffdb7dc1faff6ca651e",
      "tree": "9eb13d36a8951ef160250bb973648426b456c46b",
      "parents": [
        "e760e716d47b48caf98da348368fd41b4a9b9e7e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Feb 11 10:00:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 13 23:24:04 2008 -0500"
      },
      "message": "NFS: fix reference counting for NFSv4 callback thread\n\nThe reference counting for the NFSv4 callback thread stays artificially\nhigh. When this thread comes down, it doesn\u0027t properly tear down the\nsvc_serv, causing a memory leak. In my testing on an older kernel on\nx86_64, memory would leak out of the 8k kmalloc slab. So, we\u0027re leaking\nat least a page of memory every time the thread comes down.\n\nsvc_create() creates the svc_serv with a sv_nrthreads count of 1, and\nthen svc_create_thread() increments that count. Whenever the callback\nthread is started it has a sv_nrthreads count of 2. When coming down, it\ncalls svc_exit_thread() which decrements that count and if it hits 0, it\ntears everything down. That never happens here since the count is always\nat 2 when the thread exits.\n\nThe problem is that nfs_callback_up() should be calling svc_destroy() on\nthe svc_serv on both success and failure. This is how lockd_up_proto()\nhandles the reference counting, and doing that here fixes the leak.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d47a35600270e7115061cb1320ee60ae9bcb6b8",
      "tree": "63b6ac010939b45ce53e65dedae68f1296bd98e7",
      "parents": [
        "df922075f2a55b1ae71a6fe589c1cc1b91381f4f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 07 17:24:07 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 07 19:20:20 2008 -0500"
      },
      "message": "NFS: Fix a potential file corruption issue when writing\n\nIf the inode is flagged as having an invalid mapping, then we can\u0027t rely on\nthe PageUptodate() flag. Ensure that we don\u0027t use the \"anti-fragmentation\"\nwrite optimisation in nfs_updatepage(), since that will cause NFS to write\nout areas of the page that are no longer guaranteed to be up to date.\n\nA potential corruption could occur in the following scenario:\n\nclient 1\t\t\tclient 2\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\t\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t\t\t\tfd\u003dopen(\"f\",O_CREAT|O_WRONLY,0644);\n\t\t\t\twrite(fd,\"fubar\\n\",6);\t// cache last page\n\t\t\t\tclose(fd);\nfd\u003dopen(\"f\",O_WRONLY|O_APPEND);\nwrite(fd,\"foo\\n\",4);\nclose(fd);\n\n\t\t\t\tfd\u003dopen(\"f\",O_WRONLY|O_APPEND);\n\t\t\t\twrite(fd,\"bar\\n\",4);\n\t\t\t\tclose(fd);\n-----\nThe bug may lead to the file \"f\" reading \u0027fubar\\n\\0\\0\\0\\nbar\\n\u0027 because\nclient 2 does not update the cached page after re-opening the file for\nwrite. Instead it keeps it marked as PageUptodate() until someone calls\ninvaldate_inode_pages2() (typically by calling read()).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f",
      "tree": "d4b17ef65960594681397a3acac02c2d248200b5",
      "parents": [
        "d1bc8e95445224276d7896b8b08cbb0b28a0ca80"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:26 2008 -0800"
      },
      "message": "Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p)\n\nConvert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:\n\nperl -spi -e \u0027s/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\\1)/\u0027 `grep -rl \u0027ERR_PTR[(]*PTR_ERR\u0027 fs crypto net security`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eebd2aa355692afaf9906f62118620f1a1c19dbb",
      "tree": "207eead3a736963c3e50942038c463f2f611ccce",
      "parents": [
        "b98348bdd08dc4ec11828aa98a78edde15c53cfa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user\n\nSimplify page cache zeroing of segments of pages through 3 functions\n\nzero_user_segments(page, start1, end1, start2, end2)\n\n        Zeros two segments of the page. It takes the position where to\n        start and end the zeroing which avoids length calculations and\n\tmakes code clearer.\n\nzero_user_segment(page, start, end)\n\n        Same for a single segment.\n\nzero_user(page, start, length)\n\n        Length variant for the case where we know the length.\n\nWe remove the zero_user_page macro. Issues:\n\n1. Its a macro. Inline functions are preferable.\n\n2. The KM_USER0 macro is only defined for HIGHMEM.\n\n   Having to treat this special case everywhere makes the\n   code needlessly complex. The parameter for zeroing is always\n   KM_USER0 except in one single case that we open code.\n\nAvoiding KM_USER0 makes a lot of code not having to be dealing\nwith the special casing for HIGHMEM anymore. Dealing with\nkmap is only necessary for HIGHMEM configurations. In those\nconfigurations we use KM_USER0 like we do for a series of other\nfunctions defined in highmem.h.\n\nSince KM_USER0 is depends on HIGHMEM the existing zero_user_page\nfunction could not be a macro. zero_user_* functions introduced\nhere can be be inline because that constant is not used when these\nfunctions are called.\n\nAlso extract the flushing of the caches to be outside of the kmap.\n\n[akpm@linux-foundation.org: fix nfs and ntfs build]\n[akpm@linux-foundation.org: fix ntfs build some more]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7c9f1ed972b4a468dd24a2457721704dfe9ca70",
      "tree": "40cd2b38db79df4d90753b58789c3e4bc274095f",
      "parents": [
        "b700cbb11fced2a0e953fdd19eac07ffaad86598"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:44 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:09 2008 -0500"
      },
      "message": "svc: Change services to use new svc_create_xprt service\n\nModify the various kernel RPC svcs to use the svc_create_xprt service.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "75659ca0c10992dcb39258518368a0f6f56e935d",
      "tree": "5d014ceb2f10158061a23d0d976f9a613d85e659",
      "parents": [
        "fbdde7bd274d74729954190f99afcb1e3d9bbfba",
        "2dfe485a2c8afa54cb069fcf48476f6c90ea3fdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "message": "Merge branch \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: (22 commits)\n  Remove commented-out code copied from NFS\n  NFS: Switch from intr mount option to TASK_KILLABLE\n  Add wait_for_completion_killable\n  Add wait_event_killable\n  Add schedule_timeout_killable\n  Use mutex_lock_killable in vfs_readdir\n  Add mutex_lock_killable\n  Use lock_page_killable\n  Add lock_page_killable\n  Add fatal_signal_pending\n  Add TASK_WAKEKILL\n  exit: Use task_is_*\n  signal: Use task_is_*\n  sched: Use task_contributes_to_load, TASK_ALL and TASK_NORMAL\n  ptrace: Use task_is_*\n  power: Use task_is_*\n  wait: Use TASK_NORMAL\n  proc/base.c: Use task_is_*\n  proc/array.c: Use TASK_REPORT\n  perfmon: Use task_is_*\n  ...\n\nFixed up conflicts in NFS/sunrpc manually..\n"
    },
    {
      "commit": "3fbd67ad61f6d5a09ea717b56c50bc5c3d8042a8",
      "tree": "ffac0a032211517e9d0bc9ff21a09f8c21fdf1c3",
      "parents": [
        "57bfa89171e50cddf51a4f62c90e47c6259857b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 26 01:06:40 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFSv4: Iterate through all nfs_clients when the server recalls a delegation\n\nThe same delegation may have been handed out to more than one nfs_client.\nEnsure that if a recall occurs, we return all instances.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57bfa89171e50cddf51a4f62c90e47c6259857b4",
      "tree": "2c3f6d45a61b4f888544d492d78fedd797001bc8",
      "parents": [
        "6f23e3872cff238589f9bf39c71db2ea880c9a26"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 25 16:38:18 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFSv4: Deal more correctly with duplicate delegations\n\nIf a (broken?) server hands out two different delegations for the same\nfile, then we should return one of them.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f23e3872cff238589f9bf39c71db2ea880c9a26",
      "tree": "7b118601dcd65ae2bee7eddbeae6bdd6d64f4423",
      "parents": [
        "e6f810759505bc86c009854b82cc495ffd8eb020"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 25 16:38:17 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFS: Fix a potential race between umount and nfs_access_cache_shrinker()\n\nThanks to Yawei Niu for spotting the race.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6f810759505bc86c009854b82cc495ffd8eb020",
      "tree": "1590631fe3b222d49015dd53b421a5547e13e4dc",
      "parents": [
        "99fadcd76465842c014c88b8c9c19b457e9debc0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 24 18:14:34 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:12 2008 -0500"
      },
      "message": "NFS: Add an asynchronous delegreturn operation for use in nfs_clear_inode\n\nOtherwise, there is a potential deadlock if the last dput() from an NFSv4\nclose() or other asynchronous operation leads to nfs_clear_inode calling\nthe synchronous delegreturn.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99fadcd76465842c014c88b8c9c19b457e9debc0",
      "tree": "34b61c6444beacc58bc643285441a553af420dc4",
      "parents": [
        "3a10c30acc4821ca000b52ed0edafd0d3bf26a52"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jan 23 08:59:08 2008 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:11 2008 -0500"
      },
      "message": "nfs: convert NFS_*(inode) helpers to static inline\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a10c30acc4821ca000b52ed0edafd0d3bf26a52",
      "tree": "535fe870e12f9a032112b16d4e31fe1d813ea2c3",
      "parents": [
        "fc6014771bde8a215a9a4ea24b45f76afeb3c922"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jan 23 08:58:59 2008 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:11 2008 -0500"
      },
      "message": "nfs: obliterate NFS_FLAGS macro\n\nuse NFS_I(inode)-\u003eflags instead\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc6014771bde8a215a9a4ea24b45f76afeb3c922",
      "tree": "60d34b3f1fa44c42a7fd18867531dc915007dfa0",
      "parents": [
        "3d1c550874bcaf0d9b7fb66f601caed109074f4b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jan 16 16:38:10 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:11 2008 -0500"
      },
      "message": "NFS: Address memory leaks in the NFS client mount option parser\n\nDavid Howells noticed that repeating the same mount option twice during an\nNFS mount request can result in orphaned memory in certain cases.\n\nOnly the client_address and mount_server.hostname strings are initialized\nin the mount parsing loop, so those appear to be the only two pointers that\nmight be written over by repeating a mount option.  The strings in the\nnfs_server section of the nfs_parsed_mount_data structure are set only once\nafter the options are parsed, thus these are not susceptible to being\noverwritten.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3d1c550874bcaf0d9b7fb66f601caed109074f4b",
      "tree": "d3517a859cfd433ebe08f6d204d84d03581070ee",
      "parents": [
        "f3c391e89c92651105364c6645244118ec9b3952"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 15 16:43:19 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:10 2008 -0500"
      },
      "message": "nfs4: allow nfsv4 acls on non-regular-files\n\nThe rfc doesn\u0027t give any reason it shouldn\u0027t be possible to set an\nattribute on a non-regular file.  And if the server supports it, then it\nshouldn\u0027t be up to us to prevent it.\n\nThanks to Erez for the report and Trond for further analysis.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nTested-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3c391e89c92651105364c6645244118ec9b3952",
      "tree": "248ea7f3f5244b4f00acc8b1f36c57324b61ff31",
      "parents": [
        "34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 15 14:17:12 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:10 2008 -0500"
      },
      "message": "NFS: Optimise away the sigmask code in aio/dio reads and writes\n\nThere are no interruptible waits for asynchronous RPC tasks, so we don\u0027t\nneed to wrap calls to rpc_run_task() with an\nrpc_clnt_sigmask/rpc_clnt_unsigmask pair.\n\nInstead we can wrap the wait_for_completion_interruptible() in\nnfs_direct_wait(). This means that we completely optimise away sigmask\nsetting for the case of non-blocking aio/dio.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "883bb163f84e0a54b29846c61621f52db3f27393",
      "tree": "ea11b2d1ba85cbb4422ae7ff615d6d186d709af1",
      "parents": [
        "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jan 15 16:04:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM: Introduce an arguments structure for nlmclnt_init()\n\nClean up: pass 5 arguments to nlmclnt_init() in a structure similar to the\nnew nfs_client_initdata structure.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n"
    },
    {
      "commit": "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe",
      "tree": "bc558d58ae38aab7e615883eceef1ec253c2d646",
      "parents": [
        "9289e7f91add1c09c3ec8571a2080f7507730b8d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM/NFS: Use cached nlm_host when calling nlmclnt_proc()\n\nNow that each NFS mount point caches its own nlm_host structure, it can be\npassed to nlmclnt_proc() for each lock request.  By pinning an nlm_host for\neach mount point, we trade the overhead of looking up or creating a fresh\nnlm_host struct during every NLM procedure call for a little extra memory.\n\nWe also restrict the nlmclnt_proc symbol to limit the use of this call to\nin-tree modules.\n\nNote that nlm_lookup_host() (just removed from the client\u0027s per-request\nNLM processing) could also trigger an nlm_host garbage collection.  Now\nclient-side nlm_host garbage collection occurs only during NFS mount\nprocessing.  Since the NFS client now holds a reference on these nlm_host\nstructures, they wouldn\u0027t have been affected by garbage collection\nanyway.\n\nGiven that nlm_lookup_host() reorders the global nlm_host chain after\nevery successful lookup, and that a garbage collection could be triggered\nduring the call, we\u0027ve removed a significant amount of per-NLM-request\nCPU processing overhead.\n\nSidebar: there are only a few remaining references to the internals of\nNFS inodes in the client-side NLM code.  The only references I found are\nrelated to extracting or comparing the inode\u0027s file handle via NFS_FH().\nOne is in nlmclnt_grant(); the other is in nlmclnt_setlockargs().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9289e7f91add1c09c3ec8571a2080f7507730b8d",
      "tree": "f8fd567e331b02efda2e09986fdfb37c1461dfc8",
      "parents": [
        "52c4044d00fe703eb3fb18e0d8dfd1c196eb28be"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:52 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NFS: Invoke nlmclnt_init during NFS mount processing\n\nCache an appropriate nlm_host structure in the NFS client\u0027s mount point\nmetadata for later use.\n\nNote that there is no need to set NFS_MOUNT_NONLM in the error case -- if\nnfs_start_lockd() returns a non-zero value, its callers ensure that the\nmount request fails outright.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3d509e5454a0a5ac88bf3191ab65d85952c1de31",
      "tree": "df690f78b818c9f8f9b062e3f9d10aa5dc4387d9",
      "parents": [
        "bf4285e75c3272ad9bfdeb886d247962bb2985f8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:55:04 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:02 2008 -0500"
      },
      "message": "NFS: nfs_write_end clean up\n\nClean up: commit 4899f9c8 added nfs_write_end(), which introduces a\nconditional expression that returns an unsigned integer in one arm and\na signed integer in the other.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bf4285e75c3272ad9bfdeb886d247962bb2985f8",
      "tree": "a366fd1d3fb2591f1fce114f17aade410f1db3dc",
      "parents": [
        "d24aae41b4d4141d4f3cffdbf4c31d85637ba691"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 20 14:54:57 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:01 2008 -0500"
      },
      "message": "NFS: Fix minor mixed sign comparison in NFS client\u0027s write logic\n\nClean up: PAGE_CACHE_SIZE is unsigned, and nfs_pageio_init() takes a size_t.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "d24aae41b4d4141d4f3cffdbf4c31d85637ba691"
}
