)]}'
{
  "log": [
    {
      "commit": "f7e8917a67980924651a9e244510e63ef05c7755",
      "tree": "fb00db5ef8b3b26793fae7a1186f1cd16205ab9d",
      "parents": [
        "36840370845629e6cb4324d1dd4aff6778670503"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:32 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:32 2011 -0500"
      },
      "message": "pnfs: layout roc code\n\nA layout can request return-on-close.  How this interacts with the\nforgetful model of never sending LAYOUTRETURNS is a bit ambiguous.\nWe forget any layouts marked roc, and wait for them to be completely\nforgotten before continuing with the close.  In addition, to compensate\nfor races with any inflight LAYOUTGETs, and the fact that we do not get\nany layout stateid back from the server, we set the barrier to the worst\ncase scenario of current_seqid + number of outstanding LAYOUTGETS.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "43f1b3da8b35d706d6c47880fc211d2519b4a587",
      "tree": "67fdbaaab9658cf79b17fa905c62a59d7355d613",
      "parents": [
        "f2a625616045fe46e1d5fceebdd825f5acdecdb7"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:30 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:32 2011 -0500"
      },
      "message": "pnfs: add CB_LAYOUTRECALL handling\n\nThis is the heart of the wave 2 submission.  Add the code to trigger\ndrain and forget of any afected layouts.  In addition, we set a\n\"barrier\", below which any LAYOUTGET reply is ignored.  This is to\ncompensate for the fact that we do not wait for outstanding LAYOUTGETs\nto complete as per section 12.5.5.2.1 of RFC 5661.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cc6e5340b0981feac5a00a992bab6154cb4b1fa1",
      "tree": "514db8586801aa60ee97d3880071b12c0cdf2421",
      "parents": [
        "fc1794c5b04f5322bad05385cd91b52ec85aab72"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:28 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:32 2011 -0500"
      },
      "message": "pnfs: change lo refcounting to atomic_t\n\nThis will be required to allow us to grab reference outside of i_lock.\nWhile we are at it, make put_layout_hdr take the same argument as all the\nrelated functions.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc1794c5b04f5322bad05385cd91b52ec85aab72",
      "tree": "9d77a81dcdf6f858e20c8d8224e44dac13644dd5",
      "parents": [
        "2130ff663633e8a57921779ebfe62fc39d5585ec"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:27 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:32 2011 -0500"
      },
      "message": "pnfs: check that partial LAYOUTGET return is ignored\n\nEither a bad server reply, or our ignoring of multiple array segments in\na reply, can cause a reply to not meet our requirements.  Ensure\nthat we ignore such replies.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2130ff663633e8a57921779ebfe62fc39d5585ec",
      "tree": "e100ef526b266a45ed3216be087d144df8cdbaed",
      "parents": [
        "cf7d63f1f9895713551df2e6d18b006f8af26e91"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:26 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:32 2011 -0500"
      },
      "message": "pnfs: add layout to client list before sending rpc\n\nSince this list will be used to search for layouts to recall,\nthis is necessary to avoid a race where the recall comes in,\nsees there is nothing in the client list, and prepares to return\nNOMATCHING, while the LAYOUTGET gets processed before the recall\nupdates the stateid.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cf7d63f1f9895713551df2e6d18b006f8af26e91",
      "tree": "fc3dbfc12332878a832c11b5ae47ff259bb1bc32",
      "parents": [
        "c31663d4a1fac5ce1954d656cbcf80eb883b814a"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:25 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:31 2011 -0500"
      },
      "message": "pnfs: serialize LAYOUTGET(openstateid)\n\nWe shouldn\u0027t send a LAYOUTGET(openstateid) unless all outstanding RPCs\nusing the previous stateid are completed.  This requires choosing the\nstateid to encode earlier, so we can abort if one is not available (we\nwant to use the open stateid, but a LAYOUTGET is already out using\nit), and adding a count of the number of outstanding rpc calls using\nlayout state (which for now consist solely of LAYOUTGETs).\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4541d16c024ce40a0781e03c185ecdfe34aec46f",
      "tree": "53574211b3de874869b09644b8de872ccf2d4fe1",
      "parents": [
        "fd6002e9b8a93220d5f53b93d9624caf73cdc8a2"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:23 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:31 2011 -0500"
      },
      "message": "pnfs: change how lsegs are removed from layout list\n\nThis is to prepare the way for sensible io draining.  Instead of just\nremoving the lseg from the list, we instead clear the VALID flag\n(preventing new io from grabbing references to the lseg) and remove\nthe reference holding it in the list.  Thus the lseg will be removed\nonce any io in progress completes and any references still held are\ndropped.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fd6002e9b8a93220d5f53b93d9624caf73cdc8a2",
      "tree": "f45c22c9ec855949b1ec0488162229df4eb3f5ed",
      "parents": [
        "b7edfaa1983362842351e425adeb8e297b4c11fb"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:22 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:31 2011 -0500"
      },
      "message": "pnfs: change layout state seqlock to a spinlock\n\nThis prepares for future changes, where the layout state needs\nto change atomically with several other variables.  In particular,\nit will need to know if lo-\u003esegs is empty, as we test that instead\nof manipulating the NFS_LAYOUT_STATEID_SET bit.  Moreover, the\nlayoutstateid is not really a read-mostly structure, as it is\nwritten almost as often as it is read.\n\nThe behavior of pnfs_get_layout_stateid is also slightly changed, so that\nit no longer changes the stateid.  Its name is changed to +pnfs_choose_layoutget_stateid.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7edfaa1983362842351e425adeb8e297b4c11fb",
      "tree": "b0c05e48ecc4d14a72a7e4b704c27a1080d745fb",
      "parents": [
        "566052c53b5146e23a99ab95fb5c11f8a295a084"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:21 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:31 2011 -0500"
      },
      "message": "pnfs: add prefix to struct pnfs_layout_hdr fields\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "566052c53b5146e23a99ab95fb5c11f8a295a084",
      "tree": "36c013aa52adf29bd57c2a04c9c51e24eeeb44b3",
      "parents": [
        "daaa82d1c72e10dc16cad3a810e225f9188dc7aa"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:20 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:31 2011 -0500"
      },
      "message": "pnfs: add prefix to struct pnfs_layout_segment fields\n\nWhile we are renaming all the fields, change lo-\u003estate to lo-\u003eplh_flags.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52fabd73199cd00932f92c9f548bdf66a5bbc23d",
      "tree": "0d1b3d504f568f950c1f51ac732f04b87e3c2db0",
      "parents": [
        "4a19de0f4b693139bb10b7cc3cfe1f618576ba67"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Jan 06 11:36:18 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 06 14:46:30 2011 -0500"
      },
      "message": "pnfs: fix incorrect comment in destroy_lseg\n\nComment references get_layout_hdr_locked, which never existed in\nsubmitted code.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1c787096fce217b5fdd9806dbce96e738c9345c0",
      "tree": "c3ee4071ef4729951c50f22a82e2088a8ab1c7de",
      "parents": [
        "16b374ca439fb406e46e071f75428f5b033056f8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 21 16:56:48 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:11 2010 -0400"
      },
      "message": "NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n\nThe initialize_mountpoint/uninitialise_mountpoint functions are really about\nsetting or clearing the layout driver to be used on this filesystem. Change\nthe names to the more descriptive \u0027set_layoutdriver/clear_layoutdriver\u0027.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b1f69b754ee312ec75f2c7ead0e6851cd9598cc2",
      "tree": "1d8e70abb2cd087e3b97f73d86db8b9568467378",
      "parents": [
        "974cec8ca0352eb5d281535b714cf194a606e98f"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:18:03 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n\nAdd the ability to actually send LAYOUTGET and GETDEVICEINFO.  This also adds\nin the machinery to handle layout state and the deviceid cache.  Note that\nGETDEVICEINFO is not called directly by the generic layer.  Instead it\nis called by the drivers while parsing the LAYOUTGET opaque data in response\nto an unknown device id embedded therein.  RFC 5661 only encodes\ndevice ids within the driver-specific opaque data.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "974cec8ca0352eb5d281535b714cf194a606e98f",
      "tree": "0e71706c3091fc785bab0be8edc5de36816685ff",
      "parents": [
        "e5e940170b2136ad4d5483ef293ae284b9cc8d53"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:18:02 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: client needs to maintain list of inodes with active layouts\n\nIn particular, server reboot will invalidate all layouts.\n\nNote that in order to have an active layout, we must get a successful response\nfrom the server.  To avoid adding that machinery, this patch just includes a\nstub that fakes up a successful return.  Since the layout is never referenced\nfor io, this is not a problem.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e5e940170b2136ad4d5483ef293ae284b9cc8d53",
      "tree": "1568bf55addee6a6fdc091026083426b087e68df",
      "parents": [
        "7ab672ce312133ee4a5d85b71447b2b334403681"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Oct 20 00:18:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: create and destroy inode\u0027s layout cache\n\nAt the start of the io paths, try to grab the relevant layout\ninformation.  This will initiate the inode\u0027s layout cache, but\nstubs ensure the cache stays empty.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "02c35fca7cf4ea2dfdc6db279e230cacbbf4b870",
      "tree": "7449a8a3fb119d862f6c163c05cf43d58443c377",
      "parents": [
        "85e174ba6b786ad336eb2df105b4f66d0932e70a"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Wed Oct 20 00:17:59 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: full mount/umount infrastructure\n\nAllow a module implementing a layout type to register, and\nhave its mount/umount routines called for filesystems that\nthe server declares support it.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Bian Naimeng \u003cbiannm@cn.fujitsu.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "85e174ba6b786ad336eb2df105b4f66d0932e70a",
      "tree": "eec6b01d897e85c47471f4166201676001c9fd21",
      "parents": [
        "504913fbc84c00bba7224d73e4aab525c1731f7d"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Oct 20 00:17:58 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: set layout driver\n\nPut in the infrastructure that uses information returned from the\nserver at mount to select a layout driver module.\n\nIn this patch, a stub is used that always returns \"no driver found\".\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ]
}
