)]}'
{
  "log": [
    {
      "commit": "73ea666c2bb536f2862cefdb3e014ed62b262ba5",
      "tree": "b1992b20a6d907660606b2fc998d75b2f56b894a",
      "parents": [
        "591555465ec513c42416392d392fd56866cb220c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 21 22:44:50 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 16:45:44 2012 -0400"
      },
      "message": "NFS: Use proper naming conventions for the nfs_client.net field\n\nClean up:  When naming fields and data types, follow established\nconventions to facilitate accurate grep/cscope searches.\n\nIntroduced by commit e50a7a1a \"NFS: make NFS client allocated per\nnetwork namespace context,\" Tue Jan 10, 2012.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "30dd374f6fc1b202db3a1b57b61afff1326bad92",
      "tree": "7d3b631be897dd79a916ee8d410fd2bb92da4890",
      "parents": [
        "cd841605f7a721878d8a2d1362484723d8abf569"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:45 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: create struct nfs_page_array\n\nBoth nfs_read_data and nfs_write_data devote several fields which\ncan be combined into a single shared struct.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd841605f7a721878d8a2d1362484723d8abf569",
      "tree": "b5c37db575cd545a183577249909e042fe38d646",
      "parents": [
        "b5542849764aa56fd3f05c0041195b637b9d2ac2"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:44 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: create common nfs_pgio_header for both read and write\n\nIn order to avoid duplicating all the data in nfs_read_data whenever we\nsplit it up into multiple RPC calls (either due to a short read result\nor due to rsize \u003c PAGE_SIZE), we split out the bits that are the same\nper RPC call into a separate \"header\" structure.\n\nThe goal this patch moves towards is to have a single header\nrefcounted by several rpc_data structures.  Thus, want to always refer\nfrom rpc_data to the header, and not the other way.  This patch comes\nclose to that ideal, but the directio code currently needs some\nspecial casing, isolated in the nfs_direct_[read_write]hdr_release()\nfunctions.  This will be dealt with in a future patch.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "10bd295a0b6488ebe634b72a11d8986bd3af3819",
      "tree": "8c9fec0f15e1a64fe1d1aa58b42c61d8b2108666",
      "parents": [
        "e5265a0c587423bbd21a6b39a572cecff16b9346"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Mon Apr 09 22:33:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 26 12:23:23 2012 -0400"
      },
      "message": "fix page number calculation bug for block layout decode buffer\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSuggested-by: Andy Adamson \u003candros@netapp.com\u003e\nSuggested-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f00866ddd15724eb20eac4ddf6e2c6c1a6cfcdc",
      "tree": "14c33fa0d8dfe765175c3972d1fd746ef766c150",
      "parents": [
        "ffa94db6042e6fd014ae0bed8832ac707ef2afe9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 14:12:46 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:44 2012 -0400"
      },
      "message": "NFS: Fix more NFS debug related build warnings\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e138ead73f872559778bb0c326e795206f96d3ce",
      "tree": "e134947deaeae4e347297440a6fd6ebe7fefcc97",
      "parents": [
        "9a3ba432330e504ac61ff0043dbdaba7cea0e35a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Mar 13 20:18:48 2012 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 13 15:33:08 2012 -0400"
      },
      "message": "NFS: null dereference in dev_remove()\n\nIn commit 5ffaf85541 \"NFS: replace global bl_wq with per-net one\" we\nmade \"msg\" a pointer instead of a struct stored in stack memory.  But we\nforgot to change the memset() here so we\u0027re still clearing stack memory\ninstead clearing the struct like we intended.  It will lead to a kernel\ncrash.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5ffaf8554163d9f3873988ce2f9977f6c6f408d2",
      "tree": "ed026242a8580c8df03c9383ef32e6e7fb90f949",
      "parents": [
        "cb9c1c4a880bc734c2848f8647be2cfa336ee346"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Sun Mar 11 18:20:31 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 10:57:35 2012 -0400"
      },
      "message": "NFS: replace global bl_wq with per-net one\n\nThis queue is used for sleeping in kernel and it have to be per-net since we\ndon\u0027t want to wake any other waiters except in out network nemespace.\nBTW, move wq to per-net data is easy. But some way to handle upcall timeouts\nhave to be provided. On message destroy in case of timeout, tasks, waiting for\nmessage to be delivered, should be awakened. Thus, some data required to\nlocated the right wait queue. Chosen solution replaces rpc_pipe_msg object with\nnew introduced bl_pipe_msg object, containing rpc_pipe_msg and proper wq.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cb9c1c4a880bc734c2848f8647be2cfa336ee346",
      "tree": "84006417e491ba57da87a88212c5c9dda3fd4e96",
      "parents": [
        "d6d6dc7cdfda7c8f49a89a7b7261846f319da6d1"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Sun Mar 11 18:20:23 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 10:57:34 2012 -0400"
      },
      "message": "NFS: replace global bl_mount_reply with per-net one\n\nThis global variable is used for blocklayout downcall and thus can be corrupted\nif case of existence of multiple networks namespaces.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a030889a01d1bea921e1a7501010b7b891d2abd2",
      "tree": "4e76ec42bbdd41682e6cea5541f305c2f1275e99",
      "parents": [
        "f9fd2d9c1f3b512c9794abbbd76c77a6e6de57aa"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Jan 26 13:32:23 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 06 18:48:00 2012 -0500"
      },
      "message": "NFS: start printks w/ NFS: even if __func__ shown\n\nThis patch addresses printks that have some context to show that they are\nfrom fs/nfs/, but for the sake of consistency now start with NFS:\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d9dea915fe333357912bce2d624ee848dfbd890",
      "tree": "885fe85b4439080e15cfaba67e6ab9e179244a05",
      "parents": [
        "4601df20fb3bf2b87e248abc622b8a7e4c3059fb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 20 18:57:02 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 19:28:22 2012 -0500"
      },
      "message": "NFS: Use kcalloc() when allocating arrays\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2561d618ffb615f92fe17f0cf6b03f8e5cddb2cb",
      "tree": "8b7a4c70c4d3d3d56f11e5ad077a1756b5407c5c",
      "parents": [
        "627f30668fac12f5bd555a2cc22af2323762fe8d"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 17:04:40 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "NFS: remove RPC PipeFS mount point reference from blocklayout routines\n\nThis is a cleanup patch. We don\u0027t need this reference anymore, because\nblocklayout pipes dentries now creates and destroys in per-net operations and\non PipeFS mount/umount notification.\nNote that nfs4blocklayout_register_net() now returns 0 instead of -ENOENT in\ncase of PipeFS superblock absence. This is ok, because blocklayout pipe dentry\nwill be created on PipeFS mount event.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "627f30668fac12f5bd555a2cc22af2323762fe8d",
      "tree": "aa7b87018cff8bbfd4d7dfb47fc8d1f4e264ee61",
      "parents": [
        "9e2e74dba6ddce94da187369b50a27536147d5df"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 17:04:32 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "NFS: blocklayout PipeFS notifier introduced\n\nThis patch subscribes blocklayout pipes to RPC pipefs notifications. Notifier\nis registering on blocklayout module load. This notifier callback is\nresponsible for creation/destruction of PipeFS blocklayout pipe dentry.\nNote that no locking required in notifier callback because PipeFS superblock\npointer is passed as an argument from it\u0027s creation or destruction routine and\nthus we can be sure about it\u0027s validity.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e2e74dba6ddce94da187369b50a27536147d5df",
      "tree": "b4c2e7570775f0d9b0477fdf26e5f99c91e61ac4",
      "parents": [
        "332dfab6f4e02d3c5897e9470492bee7d14f29cc"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 17:04:24 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "NFS: blocklayout pipe creation per network namespace context introduced\n\nThis patch implements blocklayout pipe creation and registration per each\nexistent network namespace.\nThis was achived by registering NFS per-net operations, responsible for\nblocklayout pipe allocation/register and unregister/destruction instead of\ninitialization and destruction of static \"bl_device_pipe\" pipe (this one was\nremoved).\nNote, than pointer to network blocklayout pipe is stored in per-net \"nfs_net\"\nstructure, because allocating of one more per-net structure for blocklayout\nmodule looks redundant.\nThis patch also changes dev_remove() function prototype (and all it\u0027s callers,\nwhere it\u0027 requied) by adding network namespace pointer parameter, which is used\nto discover proper blocklayout pipe for rpc_queue_upcall() call.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "332dfab6f4e02d3c5897e9470492bee7d14f29cc",
      "tree": "470698ae1d0c8d49b4acc45cd1d7c8ba5a56dfd8",
      "parents": [
        "eee17325f1dfbe004f1475743bab9e3d050d00f5"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 10 17:04:16 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:27 2012 -0500"
      },
      "message": "NFS: handle blocklayout pipe PipeFS dentry by network namespace aware routines\n\nThis patch makes blocklayout pipe dentry allocated and destroyed in network\nnamespace context by PipeFS network namespace aware routines.\nNetwork namespace context is obtained from nfs_client structure.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c239d83b9921b8a8005a3bcd23000cfe18acf5c2",
      "tree": "c94e20d8f286e63a2e75b15d413c3a8c5da45b8d",
      "parents": [
        "9beae4677de76cfa4ce8899dc8cd1a1cf8cd8332"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:44:06 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNRPC: split SUNPRC PipeFS dentry and private pipe data creation\n\nThis patch is a final step towards to removing PipeFS inode references from\nkernel code other than PipeFS itself. It makes all kernel SUNRPC PipeFS users\ndepends on pipe private data, which state depend on their specific operations,\netc.\nThis patch completes SUNRPC PipeFS preparations and allows to create pipe\nprivate data and PipeFS dentries independently.\nNext step will be making SUNPRC PipeFS dentries allocated by SUNRPC PipeFS\nnetwork namespace aware routines.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d706ed1f50d3f7fae61a177183562179abe8e4bb",
      "tree": "8f66aaf4276a616ac6006c3fb96b13d6b543143d",
      "parents": [
        "d0fe13ba9178d3bb78bbd8577bdedc00f76b7a66"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Mon Dec 26 15:43:49 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 31 18:20:25 2012 -0500"
      },
      "message": "SUNPRC: cleanup RPC PipeFS pipes upcall interface\n\nRPC pipe upcall doesn\u0027t requires only private pipe data. Thus RPC inode\nreferences in this code can be removed.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c5465d6ccd759caa959828e2add5603518dafc4",
      "tree": "0d7a8dff18b667da2d2d1394c8e4585e7e098920",
      "parents": [
        "c0411a94a8f318379464e29dd81db806249dbca6"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:46 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:52:10 2012 -0500"
      },
      "message": "pnfsblock: alloc short extent before submit bio\n\nAs discussed earlier, it is better for block client to allocate memory for\ntracking extents state before submitting bio. So the patch does it by allocating\na short_extent for every INVALID extent touched by write pagelist and for\nevery zeroing page we created, saving them in layout header. Then in end_io we\ncan just use them to create commit list items and avoid memory allocation there.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c0411a94a8f318379464e29dd81db806249dbca6",
      "tree": "3a466db09ab911ab68e4b1aeed4d6981aa0642c3",
      "parents": [
        "72c508879979522de347bcec706507e00d7c443d"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:44 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:52:10 2012 -0500"
      },
      "message": "pnfsblock: remove rpc_call_ops from struct parallel_io\n\nblock layout can just make use of generic read/write_done.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "72c508879979522de347bcec706507e00d7c443d",
      "tree": "e5e7729cf427f390b8314b83143342274f8d3d03",
      "parents": [
        "60c52e3a72fda10e82f38b6f979956eb2dcb3d4e"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:42 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:52:10 2012 -0500"
      },
      "message": "pnfsblock: move find lock page logic out of bl_write_pagelist\n\nAlso avoid unnecessary lock_page if page is handled by others.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "60c52e3a72fda10e82f38b6f979956eb2dcb3d4e",
      "tree": "61196d0f4619eb56c5d2b50fb72d292ff6bb5521",
      "parents": [
        "74a6eeb44ca6174d9cc93b9b8b4d58211c57bc80"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:40 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:52:09 2012 -0500"
      },
      "message": "pnfsblock: cleanup bl_mark_sectors_init\n\nIt does not need to manipulate on partial initialized blocks.\nWriteback code takes care of it.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "74a6eeb44ca6174d9cc93b9b8b4d58211c57bc80",
      "tree": "7aa0fc19c383f31123232103121756e48fbb84ed",
      "parents": [
        "93a3844ee0f843b05a1df4b52e1a19ff26b98d24"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:48 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:39:05 2012 -0500"
      },
      "message": "pnfsblock: limit bio page count\n\nOne bio can have at most BIO_MAX_PAGES pages. We should limit it bec otherwise\nbio_alloc will fail when there are many pages in one read/write_pagelist.\n\nCc: \u003cstable@vger.kernel.org\u003e #3.1+\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "93a3844ee0f843b05a1df4b52e1a19ff26b98d24",
      "tree": "efd2ca7a8a711e779a04c47af6166abd8f844073",
      "parents": [
        "57582b372f63d0f655b1a35b0d306d73d1a46775"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:47 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:39:04 2012 -0500"
      },
      "message": "pnfsblock: don\u0027t spinlock when freeing block_dev\n\nbl_free_block_dev() may sleep. We can not call it with spinlock held.\nBesides, there is no need to take bm_lock as we are last user freeing bm_devlist.\n\nCc: \u003cstable@vger.kernel.org\u003e #3.1+\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57582b372f63d0f655b1a35b0d306d73d1a46775",
      "tree": "27c27ca5a20720d835b901760b52b66060ddb840",
      "parents": [
        "82b906d6550ee5fe0d5553359b3c9692dd0aed31"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:45 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:38:55 2012 -0500"
      },
      "message": "pnfsblock: clean up _add_entry\n\nIt is wrong to kmalloc in _add_entry() as it is inside\nspinlock. memory should be already allocated _add_entry() is called.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82b906d6550ee5fe0d5553359b3c9692dd0aed31",
      "tree": "781821e3635458fc88cba66e8d68f8e3d671d7aa",
      "parents": [
        "39e567ae36fe03c2b446e1b83ee3d39bea08f90b"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:43 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:38:51 2012 -0500"
      },
      "message": "pnfsblock: set read/write tk_status to pnfs_error\n\nTo pass the IO status to upper layer.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "39e567ae36fe03c2b446e1b83ee3d39bea08f90b",
      "tree": "0f7c3c1ec9dd0fb7a8b36e3ac4818eb870de0580",
      "parents": [
        "de040beccd52bb5fcac90031505384d037b1111c"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Jan 12 23:18:41 2012 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 12 16:38:49 2012 -0500"
      },
      "message": "pnfsblock: acquire im_lock in _preload_range\n\nWhen calling _add_entry, we should take the im_lock to protect\nagains other modifiers.\n\nCc: \u003cstable@vger.kernel.org\u003e #3.1+\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7542274519b3ba87555410c66e8356ac1e3bc9b3",
      "tree": "9245c8fde7984b4338a341033c9caa5c9f128dd4",
      "parents": [
        "e6d05a757c314ad88d0649d3835a8a1daa964236"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:17 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:15 2011 -0700"
      },
      "message": "pnfsblock: fix writeback deadlock\n\nWe should check if the sector is already initialized before\ntrying to grab the page from page cache. Otherwise when two\npages of the same block are written back by two threads each\ncalling from writepage_locked, it can cause deadlock like bellow.\n\n [ 1080.972099] INFO: task kswapd0:25 blocked for more than 120 seconds.\n [ 1080.972377] \"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n [ 1080.972812] kswapd0         D ffff88000c4926c0     0    25      2 0x00000000\n [ 1080.972816]  ffff88000df276b0 0000000000000046 ffff88000df27640 ffffffff81013ba7\n [ 1080.972821]  ffff88000c492310 ffff88000df27fd8 ffff88000df27fd8 00000000001d3440\n [ 1080.972824]  ffff88000c378000 ffff88000c492310 ffff8800175d3d40 ffff880017fc75a8\n [ 1080.972828] Call Trace:\n [ 1080.972860]  [\u003cffffffff81013ba7\u003e] ? read_tsc+0x9/0x19\n [ 1080.972877]  [\u003cffffffff810e0b23\u003e] ? lock_page+0x2b/0x2b\n [ 1080.972899]  [\u003cffffffff81475a1d\u003e] io_schedule+0x63/0x7e\n [ 1080.972902]  [\u003cffffffff810e0b31\u003e] sleep_on_page+0xe/0x12\n [ 1080.972905]  [\u003cffffffff81475fe8\u003e] __wait_on_bit_lock+0x46/0x8f\n [ 1080.972916]  [\u003cffffffff810822d7\u003e] ? lock_release_holdtime.part.7+0x6b/0x72\n [ 1080.972919]  [\u003cffffffff810e0af6\u003e] __lock_page+0x66/0x68\n [ 1080.972928]  [\u003cffffffff81072705\u003e] ? autoremove_wake_function+0x3d/0x3d\n [ 1080.972932]  [\u003cffffffff810e0b1f\u003e] lock_page+0x27/0x2b\n [ 1080.972934]  [\u003cffffffff810e0bcf\u003e] find_lock_page+0x34/0x57\n [ 1080.972937]  [\u003cffffffff810e1738\u003e] find_or_create_page+0x34/0x8a\n [ 1080.972947]  [\u003cffffffffa034245b\u003e] bl_write_pagelist+0x205/0x6da [blocklayoutdriver]\n [ 1080.972951]  [\u003cffffffffa034145d\u003e] ? bl_free_lseg+0x38/0x38 [blocklayoutdriver]\n [ 1080.972995]  [\u003cffffffffa02e27b9\u003e] ? nfs_write_rpcsetup+0x118/0x123 [nfs]\n [ 1080.973033]  [\u003cffffffffa030246b\u003e] pnfs_generic_pg_writepages+0x10b/0x1f4 [nfs]\n [ 1080.973089]  [\u003cffffffffa02deaae\u003e] nfs_pageio_doio+0x1a/0x43 [nfs]\n [ 1080.973098]  [\u003cffffffffa02df035\u003e] nfs_pageio_complete+0x16/0x2d [nfs]\n [ 1080.973108]  [\u003cffffffffa02e2d8f\u003e] nfs_writepage_locked+0xa0/0xbf [nfs]\n [ 1080.973119]  [\u003cffffffffa02e36a1\u003e] nfs_writepage+0x16/0x2b [nfs]\n [ 1080.973122]  [\u003cffffffff810e8762\u003e] ? clear_page_dirty_for_io+0x87/0x9a\n [ 1080.973133]  [\u003cffffffff810efc5b\u003e] shrink_page_list+0x39b/0x6c8\n [ 1080.973139]  [\u003cffffffff810f03bb\u003e] shrink_inactive_list+0x22c/0x39e\n [ 1080.973144]  [\u003cffffffff810822d7\u003e] ? lock_release_holdtime.part.7+0x6b/0x72\n [ 1080.973148]  [\u003cffffffff810f0c33\u003e] shrink_zone+0x445/0x588\n [ 1080.973152]  [\u003cffffffff810f1a11\u003e] balance_pgdat+0x2c2/0x56b\n [ 1080.973170]  [\u003cffffffff81254208\u003e] ? __bitmap_weight+0x34/0x80\n [ 1080.973175]  [\u003cffffffff810f1f78\u003e] kswapd+0x2be/0x2fa\n [ 1080.973179]  [\u003cffffffff810726c8\u003e] ? __init_waitqueue_head+0x4b/0x4b\n [ 1080.973183]  [\u003cffffffff810f1cba\u003e] ? balance_pgdat+0x56b/0x56b\n [ 1080.973187]  [\u003cffffffff81071f69\u003e] kthread+0xa8/0xb0\n [ 1080.973200]  [\u003cffffffff814806b4\u003e] kernel_thread_helper+0x4/0x10\n [ 1080.973205]  [\u003cffffffff81071ec1\u003e] ? __init_kthread_worker+0x5a/0x5a\n [ 1080.973210]  [\u003cffffffff814806b0\u003e] ? gs_change+0x13/0x13\n [ 1080.973213] no locks held by kswapd0/25.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6d05a757c314ad88d0649d3835a8a1daa964236",
      "tree": "f900bf7912f5eb2546769f19fdfacccbc36e6b59",
      "parents": [
        "9b7eecdcfeb943f130d86bbc249fde4994b6fe30"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:16 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:14 2011 -0700"
      },
      "message": "pnfsblock: fix NULL pointer dereference\n\nbl_add_page_to_bio returns error pointer. bio should be reset to\nNULL in failure cases as the out path always calls bl_submit_bio.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1b0ae068779874f54b55aac3a2a992bcf3f2c3c4",
      "tree": "2cfc6f406312ca02704fedb9675a02a5ec2993bf",
      "parents": [
        "760383f1ee4d14b0e0bdf0cddee648d9b8633429"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:12 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:13 2011 -0700"
      },
      "message": "pnfs: make _set_lo_fail generic\n\nfile layout and block layout both use it to set mark layout io failure\nbit. So make it generic.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "760383f1ee4d14b0e0bdf0cddee648d9b8633429",
      "tree": "8297364891043bf07938a97018ea763afbd9298f",
      "parents": [
        "c1225158a8dad9e9d5eee8a17dbbd9c7cda05ab9"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:11 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:12 2011 -0700"
      },
      "message": "pnfsblock: add missing rpc_put_mount and path_put\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1225158a8dad9e9d5eee8a17dbbd9c7cda05ab9",
      "tree": "ed543930670a47c3cb911d5580941584509b73f2",
      "parents": [
        "fdc17abbc4b6094b34ee8ff5d91eaba8637594a2"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:10 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:12 2011 -0700"
      },
      "message": "SUNRPC/NFS: make rpc pipe upcall generic\n\nThe same function is used by idmap, gss and blocklayout code. Make it\ngeneric.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdc17abbc4b6094b34ee8ff5d91eaba8637594a2",
      "tree": "e69fd0ed928128eac8adb4ea5ab523410d9eb276",
      "parents": [
        "516f2e24faa7548a61d9ba790958528469c2e284"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Thu Sep 22 21:50:09 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:11 2011 -0700"
      },
      "message": "pnfsblock: fix size of upcall message\n\nMake the status field explicitly 32 bits.  \"...it\u0027s unlikely that the kernel\nand userspace would differ on the size of an int here, but it might be a\ngood idea to go ahead and make that explicitly 32 bits in case we end up\ndealing with more exotic arches at some point in the future.\"\n\nSuggested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "516f2e24faa7548a61d9ba790958528469c2e284",
      "tree": "d4aa8a2fe75ada9a1af5257be8d14cb3b13fef65",
      "parents": [
        "2da956523526e440ef4f4dd174e26f5ac06fe011"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Thu Sep 22 21:50:08 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:11 2011 -0700"
      },
      "message": "pnfsblock: fix return code confusion\n\nAlways return PTR_ERR, not NULL, from nfs4_blk_get_deviceinfo and\nnfs4_blk_decode_device.\n\nCheck for IS_ERR, not NULL, in bl_set_layoutdriver when calling\nnfs4_blk_get_deviceinfo.\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88c9e42196285a7c573e2abda11a4b5037c669bc",
      "tree": "f9931629ff8c418aaa15b9c66a3e287a465dccc1",
      "parents": [
        "288d5abec8314ae50fe6692f324b0444acae8486"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 02 09:57:35 2011 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 04 11:54:25 2011 -0400"
      },
      "message": "nfs: add missing prefetch.h include\n\nFix this compile error on s390:\n\n  CC [M]  fs/nfs/blocklayout/blocklayout.o\nfs/nfs/blocklayout/blocklayout.c: In function \u0027bl_end_io_read\u0027:\nfs/nfs/blocklayout/blocklayout.c:201:4: error: implicit declaration of function \u0027prefetchw\u0027\n\nIntroduced with 9549ec01 \"pnfsblock: bl_read_pagelist\".\n\nCc: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "71cdd40fd498f12679070def668f6a4719ddbd1c",
      "tree": "d9f41109c962fd2a54e16217ce8abc37c7e99918",
      "parents": [
        "31e6306a4046926b598484f1cacf69309382eac6"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Sat Jul 30 20:52:56 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: write_pagelist handle zero invalid extents\n\nFor invalid extents, find other pages in the same fsblock and write them out.\n\n[pnfsblock: write_begin]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31e6306a4046926b598484f1cacf69309382eac6",
      "tree": "3b71cc552cc00a37b3838c7eb0c7dd4d320fc71d",
      "parents": [
        "650e2d39bd8f6b99f39b5009dbed9fbd3bb65e54"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:55 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: note written INVAL areas for layoutcommit\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "650e2d39bd8f6b99f39b5009dbed9fbd3bb65e54",
      "tree": "e078728da5ac6b40af0206ca9903b95e49731cb2",
      "parents": [
        "9549ec01b0dcf1c1eb277cba60067236b3f48508"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:54 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: bl_write_pagelist\n\nNote: When upper layer\u0027s read/write request cannot be fulfilled, the block\nlayout driver shouldn\u0027t silently mark the page as error. It should do\nwhat can be done and  leave the rest to the upper layer. To do so, we\nshould set rdata/wdata-\u003eres.count properly.\n\nWhen upper layer re-send the read/write request to finish the rest\npart of the request, pgbase is the position where we should start at.\n\n[pnfsblock: bl_write_pagelist support functions]\n[pnfsblock: bl_write_pagelist adjust for missing PG_USE_PNFS]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: handle errors when read or write pagelist.]\nSigned-off-by: Zhang Jingwang \u003cyyalone@gmail.com\u003e\n[pnfs-block: use new write_pagelist api]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n\n[SQUASHME: pnfsblock: mds_offset is set in the generic layer]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n\n[pnfsblock: mark IO error with NFS_LAYOUT_{RW|RO}_FAILED]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\n[pnfsblock: SQUASHME: adjust to API change]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fixup blksize alignment in bl_setup_layoutcommit]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[pnfsblock: bl_write_pagelist adjust for missing PG_USE_PNFS]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: handle errors when read or write pagelist.]\nSigned-off-by: Zhang Jingwang \u003cyyalone@gmail.com\u003e\n[pnfs-block: use new write_pagelist api]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9549ec01b0dcf1c1eb277cba60067236b3f48508",
      "tree": "5f6aaeaafd088a13cf8369a11ac37367a44c2cde",
      "parents": [
        "b2be7811dd94816f3df76708c8eb7f55bf7289e2"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:53 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: bl_read_pagelist\n\nNote: When upper layer\u0027s read/write request cannot be fulfilled, the block\nlayout driver shouldn\u0027t silently mark the page as error. It should do\nwhat can be done and  leave the rest to the upper layer. To do so, we\nshould set rdata/wdata-\u003eres.count properly.\n\nWhen upper layer re-send the read/write request to finish the rest\npart of the request, pgbase is the position where we should start at.\n\n[pnfsblock: mark IO error with NFS_LAYOUT_{RW|RO}_FAILED]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\n[pnfsblock: read path error handling]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: handle errors when read or write pagelist.]\nSigned-off-by: Zhang Jingwang \u003cyyalone@gmail.com\u003e\n[pnfs-block: use new read_pagelist api]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b2be7811dd94816f3df76708c8eb7f55bf7289e2",
      "tree": "45bd90a9b478dc0a81485cfe9ec228141d4dcbf2",
      "parents": [
        "90ace12ac42f65d1f077c5ef5ec2efafdcac338f"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:52 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: cleanup_layoutcommit\n\nIn blocklayout driver. There are two things happening\nwhile layoutcommit/cleanup.\n1. the modified extents are encoded.\n2. On cleanup the extents are put back on the layout rw\n   extents list, for reads.\n\nIn the new system where actual xdr encoding is done in\nencode_layoutcommit() directly into xdr buffer, these are\nthe new commit stages:\n\n1. On setup_layoutcommit, the range is adjusted as before\n   and a structure is allocated for communication with\n   bl_encode_layoutcommit \u0026\u0026 bl_cleanup_layoutcommit\n   (Generic layer provides a void-star to hang it on)\n\n2. bl_encode_layoutcommit is called to do the actual\n   encoding directly into xdr. The commit-extent-list is not\n   freed and is stored on above structure.\n   FIXME: The code is not yet converted to the new XDR cleanup\n\n3. On cleanup the commit-extent-list is put back by a call\n   to set_to_rw() as before, but with no need for XDR decoding\n   of the list as before. And the commit-extent-list is freed.\n   Finally allocated structure is freed.\n\n[rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n[pnfsblock: introduce bl_committing list]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\n[pnfsblock: SQUASHME: adjust to API change]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[blocklayout: encode_layoutcommit implementation]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[pnfsblock: fix bug setting up layoutcommit.]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\n[pnfsblock: cleanup_layoutcommit wants a status parameter]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90ace12ac42f65d1f077c5ef5ec2efafdcac338f",
      "tree": "b68267bbb609498f1005c56fe957251d92e14d78",
      "parents": [
        "9f3770422c771da32c1d14e650c695eec27dbd1d"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:51 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: encode_layoutcommit\n\nIn blocklayout driver. There are two things happening\nwhile layoutcommit/cleanup.\n1. the modified extents are encoded.\n2. On cleanup the extents are put back on the layout rw\n   extents list, for reads.\n\nIn the new system where actual xdr encoding is done in\nencode_layoutcommit() directly into xdr buffer, these are\nthe new commit stages:\n\n1. On setup_layoutcommit, the range is adjusted as before\n   and a structure is allocated for communication with\n   bl_encode_layoutcommit \u0026\u0026 bl_cleanup_layoutcommit\n   (Generic layer provides a void-star to hang it on)\n\n2. bl_encode_layoutcommit is called to do the actual\n   encoding directly into xdr. The commit-extent-list is not\n   freed and is stored on above structure.\n   FIXME: The code is not yet converted to the new XDR cleanup\n\n3. On cleanup the commit-extent-list is put back by a call\n   to set_to_rw() as before, but with no need for XDR decoding\n   of the list as before. And the commit-extent-list is freed.\n   Finally allocated structure is freed.\n\n[rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()]\n[pnfsblock: get rid of deprecated xdr macros]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[blocklayout: encode_layoutcommit implementation]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[pnfsblock: fix bug setting up layoutcommit.]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\n[pnfsblock: prevent commit list corruption]\n[pnfsblock: fix layoutcommit with an empty opaque]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f3770422c771da32c1d14e650c695eec27dbd1d",
      "tree": "5c0ce4d8af872198c21c0fe3fd21fc8bf06a2d4b",
      "parents": [
        "c1c2a4cd352269f1fb585b4a5c63abe24dd946c6"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:50 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: merge rw extents\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1c2a4cd352269f1fb585b4a5c63abe24dd946c6",
      "tree": "0fc7470702b0fc3e7d156ac49285ec58de797fa3",
      "parents": [
        "6d742ba538f98164f3c5e05cdcadb4ec6ddf504f"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:49 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: add extent manipulation functions\n\nAdds working implementations of various support functions\nto handle INVAL extents, needed by writes, such as\nbl_mark_sectors_init and bl_is_sector_init.\n\n[pnfsblock: fix 64-bit compiler warnings for extent manipulation]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[Implement release_inval_marks]\nSigned-off-by: Zhang Jingwang \u003czhangjingwang@nrchpc.ac.cn\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6d742ba538f98164f3c5e05cdcadb4ec6ddf504f",
      "tree": "b87c6f5d42eccfb028a207ce48dfa474c168fd1e",
      "parents": [
        "e9437ccef92a28ba4c9009404bb8c9b5672dc54a"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:48 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: bl_find_get_extent\n\nImplement bl_find_get_extent(), one of the core extent manipulation\nroutines.\n\n[pnfsblock: Lookup list entry of layouts and tags in reverse order]\nSigned-off-by: Zhang Jingwang \u003czhangjingwang@nrchpc.ac.cn\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n\npnfsblock: fix print format warnings for sector_t and size_t\n\ngcc spews warnings about these on x86_64, e.g.:\nfs/nfs/blocklayout/blocklayout.c:74: warning: format ‘%Lu’ expects type ‘long long unsigned int’, but argument 2 has type ‘sector_t’\nfs/nfs/blocklayout/blocklayout.c:388: warning: format ‘%d’ expects type ‘int’, but argument 5 has type ‘size_t’\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9437ccef92a28ba4c9009404bb8c9b5672dc54a",
      "tree": "e14c1076b32c7d1ce4ba19c98beade79a74ac818",
      "parents": [
        "2f9fd182607e7b3bdca35f6ed7f2fae539f7c46b"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:47 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: xdr decode pnfs_block_layout4\n\nXDR decodes the block layout payload sent in LAYOUTGET result, storing\nthe result in an extent list.\n\n[pnfsblock: get rid of deprecated xdr macros]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fix bug getting pnfs_layout_type in translate_devid().]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f9fd182607e7b3bdca35f6ed7f2fae539f7c46b",
      "tree": "9a61ca5ef63c4160c3b632fe333720d3927b627f",
      "parents": [
        "03341d2cc91c700fc38883e572043a6a8f17dd5c"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:46 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: call and parse getdevicelist\n\nCall GETDEVICELIST during mount, then call and parse GETDEVICEINFO\nfor each device returned.\n\n[pnfsblock: get rid of deprecated xdr macros]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n[pnfsblock: fix pnfs_deviceid references]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fix print format warnings for sector_t and size_t]\n[pnfs-block: #include \u003clinux/vmalloc.h\u003e]\n[pnfsblock: no PNFS_NFS_SERVER]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfsblock: fix bug determining size of striped volume]\n[pnfsblock: fix oops when using multiple devices]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[pnfsblock: get rid of vmap and deviceid-\u003earea structure]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03341d2cc91c700fc38883e572043a6a8f17dd5c",
      "tree": "b5e25d8597188adac536b24158f51ed99e0b10f9",
      "parents": [
        "a60d2ebd93d3c5db5b6913c4844b8e6bd3b5538e"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:45 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: merge extents\n\nReplace a stub, so that extents underlying the layouts are properly\nadded, merged, or ignored as necessary.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: delete the new node before put it]\nSigned-off-by: Mingyang Guo \u003cguomingyang@nrchpc.ac.cn\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a60d2ebd93d3c5db5b6913c4844b8e6bd3b5538e",
      "tree": "34ef84344eb3cf3418c5ffe0058e65b3a3ec3dff",
      "parents": [
        "025a70ed6518f635f66f314d6959718be79638db"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:44 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: lseg alloc and free\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fix bug getting pnfs_layout_type in translate_devid().]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Zhang Jingwang \u003cJingwang.Zhang@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "025a70ed6518f635f66f314d6959718be79638db",
      "tree": "9ad10662a6dc6d864c2459012d6751e77964794b",
      "parents": [
        "fe0a9b740881d181e3c96c1f6f6043e252692ffe"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Sat Jul 30 20:52:43 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: remove device operations\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[upcall bugfixes]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe0a9b740881d181e3c96c1f6f6043e252692ffe",
      "tree": "11dff7e25a2a9d922fba32d331530d671769c550",
      "parents": [
        "9e69296999362c4e4b2821b64389b47e86e4821b"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Sat Jul 30 20:52:42 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: add device operations\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[upcall bugfixes]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e69296999362c4e4b2821b64389b47e86e4821b",
      "tree": "e8810b4207cc054086eaeb519aa53d2af621ff0d",
      "parents": [
        "e9643fe80d1a1e0ad6acdf43138c39b5709fdbbe"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:41 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: basic extent code\n\nAdds structures and basic create/delete code for extents.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Zhang Jingwang \u003cJingwang.Zhang@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9643fe80d1a1e0ad6acdf43138c39b5709fdbbe",
      "tree": "294a606cf46942f33e5ffc56fa93ce620690ed55",
      "parents": [
        "155e7524f28fa374da041434085050693c3df45b"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sat Jul 30 20:52:40 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:15 2011 -0400"
      },
      "message": "pnfsblock: use pageio_ops api\n\n[pnfsblock: use pnfs_generic_pg_init_read/write]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "155e7524f28fa374da041434085050693c3df45b",
      "tree": "24a3940f5a2944754e9b631e247377cb352306b3",
      "parents": [
        "db29c089094b2e686ebc9ed9f002be4a4f94b1f8"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:39 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:15 2011 -0400"
      },
      "message": "pnfsblock: add blocklayout Kconfig option, Makefile, and stubs\n\nDefine a configuration variable to enable/disable compilation of the\nblock driver code.\n\nAdd the minimal structure for a pnfs block layout driver, and empty\nlist-heads that will hold the extent data\n\n[pnfsblock: make NFS_V4_1 select PNFS_BLOCK]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs-block: fix CONFIG_PNFS_BLOCK dependencies]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[pnfsblock: SQUASHME: adjust to API change]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfs: move pnfs_layout_type inline in nfs_inode]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[blocklayout: encode_layoutcommit implementation]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[pnfsblock: layout alloc and free]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfs: move pnfs_layout_type inline in nfs_inode]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[pnfsblock: define module alias]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\n[rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ]
}
