)]}'
{
  "log": [
    {
      "commit": "1d59d61f606547f0712aa6971f91f71154071c99",
      "tree": "cb2fd4b9ce3e3ee9440d566d43ea350221edfc8e",
      "parents": [
        "2d117403b30cd7301af60d7d54b279a9f566d10d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 31 12:22:33 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 11:41:36 2012 -0700"
      },
      "message": "NFS: Ensure that setattr and getattr wait for O_DIRECT write completion\n\nUse the same mechanism as the block devices are using, but move the\nhelper functions from fs/direct-io.c into fs/inode.c to remove the\ndependency on CONFIG_BLOCK.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2701d086dbfca03b2d28b25c6dc11dd78d0e26ad",
      "tree": "69f81dd2a979600cd3ff4f1861c6d7ef5c25b1ed",
      "parents": [
        "82be417aa37c05116e310b0f2171187ea389f89b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Thu May 24 13:13:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 16:15:48 2012 -0400"
      },
      "message": "NFSv4.1 add nfs_inode book keeping for mdsthreshold\n\nKeep track of the number of bytes read or written via buffered, direct, and\nmem-mapped i/o for use by mdsthreshold size_io hints.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0427708657750bdc03af3491a0297cab5e7efabf",
      "tree": "50b754a332cb763c8e5349d55e38db4d85521ea9",
      "parents": [
        "1d1afcbc294cc7c788eb5c7b6b98e8d63caf002c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 13:54:53 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 15:17:49 2012 -0400"
      },
      "message": "NFS: Clean up - Simplify reference counting in fs/nfs/direct.c\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "1d1afcbc294cc7c788eb5c7b6b98e8d63caf002c",
      "tree": "88abc7e7018f733410fa51039351e4f0e2dd84c3",
      "parents": [
        "7ad84aa9448571678c243f0c5ef383fbe5b50f4f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 14:04:55 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 15:17:43 2012 -0400"
      },
      "message": "NFS: Clean up - Rename nfs_unlock_request and nfs_unlock_request_dont_release\n\nFunction rename to ensure that the functionality of nfs_unlock_request()\nmirrors that of nfs_lock_request(). Then let nfs_unlock_and_release_request()\ndo the work of what used to be called nfs_unlock_request()...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "7ad84aa9448571678c243f0c5ef383fbe5b50f4f",
      "tree": "7d2baea4ff52fe62b23bf8adbb81a824ee768938",
      "parents": [
        "d1182b33ed9b62470cb6ab892a8a301542120086"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 13:19:15 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 15:17:34 2012 -0400"
      },
      "message": "NFS: Clean up - simplify nfs_lock_request()\n\nWe only have two places where we need to grab a reference when trying\nto lock the nfs_page. We\u0027re better off making that explicit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "1385b8117325e79f74c1e7d1cbf45c789deb85c5",
      "tree": "b1afbd0a9ecd49d29621d1c931d685d705e285d7",
      "parents": [
        "bf5fc4028ef751904a114ffc4b5d2cd9f0233142"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 04 13:54:24 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 04 14:59:51 2012 -0400"
      },
      "message": "NFS: Fix sparse warnings\n\nFix the following sparse warnings:\n\nfs/nfs/direct.c:221:6: warning: symbol \u0027nfs_direct_readpage_release\u0027 was\nnot declared. Should it be static?\nfs/nfs/read.c:38:43: warning: non-ANSI function declaration of function\n\u0027nfs_readhdr_alloc\u0027\nfs/nfs/objlayout/objio_osd.c:214:5: warning: symbol \u0027__alloc_objio_seg\u0027\nwas not declared. Should it be static?\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n"
    },
    {
      "commit": "bf5fc4028ef751904a114ffc4b5d2cd9f0233142",
      "tree": "70c9aea55244ec155f6981a685b730bd6de0bc85",
      "parents": [
        "d69ee9b85541a69a1092f5da675bd23256dc62af"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 04 13:47:16 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 04 14:08:09 2012 -0400"
      },
      "message": "NFS: Fix O_DIRECT compile warnings\n\nFix the following compile warnings:\nfs/nfs/direct.c: In function \u0027nfs_direct_read_schedule_segment\u0027:\nfs/nfs/direct.c:325:11: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\nfs/nfs/direct.c:325:11: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\nfs/nfs/direct.c:325:11: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\nfs/nfs/direct.c:352:27: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\nfs/nfs/direct.c: In function \u0027nfs_direct_write_schedule_segment\u0027:\nfs/nfs/direct.c:622:11: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\nfs/nfs/direct.c:622:11: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\nfs/nfs/direct.c:622:11: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\nfs/nfs/direct.c:650:27: warning: comparison of distinct pointer types\nlacks a cast [enabled by default]\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\n"
    },
    {
      "commit": "4bd8b010136afa0df9122a08bad361686bda0a1d",
      "tree": "a23c23299e4468baa0927d44992d2bd9da59579c",
      "parents": [
        "25b11dcdbfcad69a5ec03265e2dce19e5eca936b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 12:49:58 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 01 15:42:22 2012 -0400"
      },
      "message": "NFS: Simplify the nfs_read_completion functions\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "292f3eeef00a20fa0ef4feec62792ad0065760a0",
      "tree": "1bf0ff03bada0f78f214dddaf327a4c406bc5990",
      "parents": [
        "6d74743b088d116e31fe1b73f47e782ee2016b94"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 18:31:49 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 18:31:49 2012 -0400"
      },
      "message": "NFS: Use kmem_cache_zalloc() in nfs_direct_req_alloc\n\nSimplify the initialisation of O_DIRECT requests.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "6d74743b088d116e31fe1b73f47e782ee2016b94",
      "tree": "a5bd52d4281795786b41153c50a4fb41ee8bd0c3",
      "parents": [
        "3e9e0ca3f19e911ce13c2e6c9858fcb41a37496c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 13:27:31 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 14:33:52 2012 -0400"
      },
      "message": "NFS: Simplify O_DIRECT page referencing\n\nThe O_DIRECT code shouldn\u0027t need to hold 2 references to each page. The\nreference held by the struct nfs_page should suffice.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "3e9e0ca3f19e911ce13c2e6c9858fcb41a37496c",
      "tree": "714ead9c8f9fb7334b876717f85aa80b33be8871",
      "parents": [
        "71e8cc00c63e8518ce86b4079355fc9086a4869d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 13:40:06 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 14:33:51 2012 -0400"
      },
      "message": "NFS: O_DIRECT pgio_completion_ops error_cleanup must unlock the request\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "71e8cc00c63e8518ce86b4079355fc9086a4869d",
      "tree": "c48dd887cbb8e3228652992acbfc558a1a066f0e",
      "parents": [
        "68cd6fa4f3be07ba648e22617dfa16a40d671d19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 13:22:54 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 14:33:51 2012 -0400"
      },
      "message": "NFS: Ensure that we break out of read/write_schedule_segment on error\n\nCurrently we do break out of the for() loop, but we also need to\nbreak out of the enclosing do {} while()...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\n"
    },
    {
      "commit": "24fc9211f4d48c04882a52e42b21c9b4abc4f9bf",
      "tree": "c126dbd24e31cb02e5d752ab9eabea01f9dece14",
      "parents": [
        "b58fee2189b17719c846f65ffe9483c2814e6605"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Apr 30 13:27:11 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 14:19:14 2012 -0400"
      },
      "message": "NFS: Define nfs_direct_write_schedule_work() when v3 and v4 are disabled\n\nv2 doesn\u0027t have commits, so this function can be a no-op.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1763da1234cba663b849476d451bdccac5147859",
      "tree": "b2b4bf3e1ce8624217c78508054fc620aac79a55",
      "parents": [
        "56f9cd684d25f1bae901c5a872b8427f8b417c3f"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:57 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:39 2012 -0400"
      },
      "message": "NFS: rewrite directio write to use async coalesce code\n\nThis also has the advantage that it allows directio to use pnfs.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "584aa810b6240d88c28113a90c5029449814a3b5",
      "tree": "694b0942747c9ee7b8f53f21cb81ddc32cc07bbb",
      "parents": [
        "1825a0d08f22463e5a8f4b1636473efd057a3479"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:51 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:38 2012 -0400"
      },
      "message": "NFS: rewrite directio read to use async coalesce code\n\nThis also has the advantage that it allows directio to use pnfs.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6c75dc0d498caa402fb17b1bf769835a9db875c8",
      "tree": "b367bb2428c011f20b8fd47a6dd0b8603ee136ba",
      "parents": [
        "4db6e0b74c0f6dfc2f9c0690e8df512e3b635983"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:47 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: merge _full and _partial write rpc_ops\n\nDecouple nfs_pgio_header and nfs_write_data, and have (possibly\nmultiple) nfs_write_datas each take a refcount on nfs_pgio_header.\n\nFor the moment keeps nfs_write_header as a way to preallocate a single\nnfs_write_data with the nfs_pgio_header.  The code doesn\u0027t need this,\nand would be prettier without, but given the amount of churn I am\nalready introducing I didn\u0027t want to play with tuning new mempools.\n\nThis also fixes bug in pnfs_ld_handle_write_error.  In the case of\ndesc-\u003epg_bsize \u003c PAGE_CACHE_SIZE, the pages list was empty, causing\nreplay attempt to do nothing.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4db6e0b74c0f6dfc2f9c0690e8df512e3b635983",
      "tree": "19d8a2a7051bdab220b0bdcf3da1e350a53ce428",
      "parents": [
        "30dd374f6fc1b202db3a1b57b61afff1326bad92"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:46 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: merge _full and _partial read rpc_ops\n\nDecouple nfs_pgio_header and nfs_read_data, and have (possibly\nmultiple) nfs_read_datas each take a refcount on nfs_pgio_header.\n\nFor the moment keeps nfs_read_header as a way to preallocate a single\nnfs_read_data with the nfs_pgio_header.  The code doesn\u0027t need this,\nand would be prettier without, but given the amount of churn I am\nalready introducing I didn\u0027t want to play with tuning new mempools.\n\nThis also fixes bug in pnfs_ld_handle_read_error.  In the case of\ndesc-\u003epg_bsize \u003c PAGE_CACHE_SIZE, the pages list was empty, causing\nreplay attempt to do nothing.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.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": "31f6852a4c187c031456581b35e146c0d5bbdecd",
      "tree": "5b3ec043c8c298c207b713aff405ecad6959a158",
      "parents": [
        "0b7c01533aa9f4a228d07d2768d084acb3a387bc"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: dprintks in directio code were referencing task after put\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0b7c01533aa9f4a228d07d2768d084acb3a387bc",
      "tree": "aa57b08ce42f1effea2294354e3c9770b70e7612",
      "parents": [
        "799ba8d53d32c84bd2a867ca2689538a48176140"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:37 2012 -0400"
      },
      "message": "NFS: add a struct nfs_commit_data to replace nfs_write_data in commits\n\nCommits don\u0027t need the vectors of pages, etc. that writes do. Split out\na separate structure for the commit operation.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a20c6bec0b8ae775e2e8f350819cef98eea9a832",
      "tree": "fd9b8278e6522b66c3b72ce308864d0f30884e67",
      "parents": [
        "e245d4250d0326cfcf7c816a2081b6ab2ea810be"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Apr 20 14:47:36 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 27 14:10:36 2012 -0400"
      },
      "message": "NFS: grab open context in direct read\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "ea7c330362257c072791aeaf03bae2cebf9fb984",
      "tree": "5633ea3278a8ad9b81891bd1fd149af76ad3fe7d",
      "parents": [
        "c6cb80d00be42f30716ec817b963bcec094433b5"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:40 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:45 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic read code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c6cb80d00be42f30716ec817b963bcec094433b5",
      "tree": "8049071fc2c5f01a730eb47bfa95ee095ce677df",
      "parents": [
        "6f00866ddd15724eb20eac4ddf6e2c6c1a6cfcdc"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Mar 19 14:54:39 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 21 09:31:45 2012 -0400"
      },
      "message": "NFS: Remove nfs4_setup_sequence from generic write code\n\nThis is an NFS v4 specific operation, so it belongs in the NFS v4 code\nand not the generic client.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d4ff43d895c50319af45eb4bf04a4618eccdf76",
      "tree": "b412cd076920a903a854a20bceed4a0ce511fd13",
      "parents": [
        "82a2c1b77ada3b81911deeb871719ec5ff77f83c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 22 18:40:12 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:44 2011 -0400"
      },
      "message": "nfs_open_context doesn\u0027t need struct path either\n\njust dentry, please...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ec10f26e1fd5fcceb9c96e508c1292a816199f7",
      "tree": "20cdd3ae42fe5ed123c71fe0ce4b5b8787198c81",
      "parents": [
        "f8628220bb395104697be9c447c1085846dfc97c"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Feb 22 00:28:34 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:39:27 2011 -0500"
      },
      "message": "NFS: account direct-io into task io accounting\n\nAccount NFS direct-io reads and writes into Task I/O Accounting.\nDo it before complition to handle aio.\n\nNFS have unusual direct-io implementation,\nthus accounting in generic code does not work.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "83762c56c1ba7c5b4b92fb32d570661633228bc6",
      "tree": "96d0868be2b18efea6ffb1fe43c75b35db1be698",
      "parents": [
        "eabf5baaaaf41b6a0273043cfb06d53dca67acef"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Fri Feb 11 15:42:37 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:40 2011 -0500"
      },
      "message": "NFS: remove pointless if statement in nfs_direct_write_result\n\nThe code was doing nothing more in either branch of the if.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "839f7ad6932d95f4d5ae7267b95c574714ff3d5b",
      "tree": "63dc2eec84a5ecb846145fd1dd70fe7cdd46fa7c",
      "parents": [
        "ad3d2eedf0ed3611f5f86b9e4d0d15cc76c63465"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 21 15:54:57 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 25 15:24:47 2011 -0500"
      },
      "message": "NFS: Fix \"kernel BUG at fs/aio.c:554!\"\n\nNick Piggin reports:\n\n\u003e I\u0027m getting use after frees in aio code in NFS\n\u003e\n\u003e [ 2703.396766] Call Trace:\n\u003e [ 2703.396858]  [\u003cffffffff8100b057\u003e] ? native_sched_clock+0x27/0x80\n\u003e [ 2703.396959]  [\u003cffffffff8108509e\u003e] ? put_lock_stats+0xe/0x40\n\u003e [ 2703.397058]  [\u003cffffffff81088348\u003e] ? lock_release_holdtime+0xa8/0x140\n\u003e [ 2703.397159]  [\u003cffffffff8108a2a5\u003e] lock_acquire+0x95/0x1b0\n\u003e [ 2703.397260]  [\u003cffffffff811627db\u003e] ? aio_put_req+0x2b/0x60\n\u003e [ 2703.397361]  [\u003cffffffff81039701\u003e] ? get_parent_ip+0x11/0x50\n\u003e [ 2703.397464]  [\u003cffffffff81612a31\u003e] _raw_spin_lock_irq+0x41/0x80\n\u003e [ 2703.397564]  [\u003cffffffff811627db\u003e] ? aio_put_req+0x2b/0x60\n\u003e [ 2703.397662]  [\u003cffffffff811627db\u003e] aio_put_req+0x2b/0x60\n\u003e [ 2703.397761]  [\u003cffffffff811647fe\u003e] do_io_submit+0x2be/0x7c0\n\u003e [ 2703.397895]  [\u003cffffffff81164d0b\u003e] sys_io_submit+0xb/0x10\n\u003e [ 2703.397995]  [\u003cffffffff8100307b\u003e] system_call_fastpath+0x16/0x1b\n\u003e\n\u003e Adding some tracing, it is due to nfs completing the request then\n\u003e returning something other than -EIOCBQUEUED, so aio.c\n\u003e also completes the request.\n\nTo address this, prevent the NFS direct I/O engine from completing\nasync iocbs when the forward path returns an error without starting\nany I/O.\n\nThis fix appears to survive ^C during both \"xfstest no. 208\" and \"fsx\n-Z.\"\n\nIt\u0027s likely this bug has existed for a very long while, as we are seeing\nvery similar symptoms in OEL 5.  Copying stable.\n\nCc: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b47d19de2c714020ba8f5545a6e7d4968f37eb45",
      "tree": "546161934b37b1dd4901f2752387fee6542a224a",
      "parents": [
        "5fc43978a79e8021c189660ab63249fd29c5fb32"
      ],
      "author": {
        "name": "Arun Bharadwaj",
        "email": "arun@linux.vnet.ibm.com",
        "time": "Thu Nov 18 10:36:43 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:42 2010 -0500"
      },
      "message": "Pure nfs client performance using odirect.\n\nWhen an application opens a file with O_DIRECT flag, if the size of\nthe data that is written is equal to wsize, the client sends a\nWRITE RPC with stable flag set to UNSTABLE followed by a single\nCOMMIT RPC rather than sending a single WRITE RPC with the stable\nflag set to FILE_SYNC. This a bug.\n\nPatch to fix this.\n\nSigned-off-by: Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "568a810d7edd58bd505222dd1c7e48895532290b",
      "tree": "b1ff2247dca234060e4a966e5f5ab969493a43e1",
      "parents": [
        "81280572ca6f54009edfa4deee563e8678784218"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "steved@redhat.com",
        "time": "Thu Oct 28 08:17:54 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 28 11:14:05 2010 -0400"
      },
      "message": "Fixed Regression in NFS Direct I/O path\n\nA typo, introduced by commit f11ac8db, in the nfs_direct_write()\nroutine causes writes with O_DIRECT set to fail with a ENOMEM error.\n\nFound-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f11ac8db5d07b6e99d41ff4aa39d878ee5cef1c5",
      "tree": "4393cbc2653145ba3269d5143f5db7811a59698b",
      "parents": [
        "1f0e890dba5b0f543fea47732116b1c65d55614e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 25 16:35:53 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jul 30 14:41:56 2010 -0400"
      },
      "message": "NFSv4: Ensure that we track the NFSv4 lock state in read/write requests.\n\nThis patch fixes bugzilla entry 14501:\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d14501\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "65d269538a1129495ac45a14a777cd11cfe881d8",
      "tree": "2bdc886ed8cfc18fe6ee62ac1c86d7c7360ca649",
      "parents": [
        "7d0bab9dfecb3717f7e704b60a9f11631cb6636e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 15 12:19:53 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 15 19:53:43 2010 -0800"
      },
      "message": "NFS: Too many GETATTR and ACCESS calls after direct I/O\n\nThe cached read and write paths initialize fattr-\u003etime_start in their\nsetup procedures.  The value of fattr-\u003etime_start is propagated to\nread_cache_jiffies by nfs_update_inode().  Subsequent calls to\nnfs_attribute_timeout() will then use a good time stamp when\ncomputing the attribute cache timeout, and squelch unneeded GETATTR\ncalls.\n\nSince the direct I/O paths erroneously leave the inode\u0027s\nfattr-\u003etime_start field set to zero, read_cache_jiffies for that inode\nis set to zero after any direct read or write operation.  This\ntriggers an otw GETATTR or ACCESS call to update the file\u0027s attribute\nand access caches properly, even when the NFS READ or WRITE replies\nhave usable post-op attributes.\n\nMake sure the direct read and write setup code performs the same fattr\ninitialization as the cached I/O paths to prevent unnecessary GETATTR\ncalls.\n\nThis was likely introduced by commit 0e574af1 in 2.6.15, which appears\nto add new nfs_fattr_init() call sites in the cached read and write\npaths, but not in the equivalent places in fs/nfs/direct.c.  A\nsubsequent commit in the same series, 33801147, introduces the\nfattr-\u003etime_start field.\n\nInterestingly, the direct write reschedule path already has a call to\nnfs_fattr_init() in the right place.\n\nReported-by: Quentin Barnes \u003cqbarnes@yahoo-inc.com\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8b40bc7e635831b61c43acc71a86d3a68b2dff0",
      "tree": "8a91dcd2149f47d2a2b6f7b49d653dd168c908a8",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Terry Loftin",
        "email": "terry.loftin@hp.com",
        "time": "Thu Oct 22 21:36:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 23 14:16:30 2009 -0400"
      },
      "message": "nfs: Panic when commit fails\n\nActually pass the NFS_FILE_SYNC option to the server to avoid a\nPanic in nfs_direct_write_complete() when a commit fails.\n\nAt the end of an nfs write, if the nfs commit fails, all the writes\nwill be rescheduled.  They are supposed to be rescheduled as NFS_FILE_SYNC\nwrites, but the rpc_task structure is not completely intialized and so\nthe option is not passed.  When the rescheduled writes complete, the\nreturn indicates that they are NFS_UNSTABLE and we try to do another\ncommit.  This leads to a Panic because the commit data structure pointer\nwas set to null in the initial (failed) commit attempt.\n\nSigned-off-by: Terry Loftin \u003cterry.loftin@hp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e1af88a1ad8f4dea3a2d6c5637d94a3fc3c62994",
      "tree": "ea94e8c93d1ae0eaac2a460e5821f53da428394f",
      "parents": [
        "f7e86ab92f2198d30828a1a327ad2085e4a7ff7d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 19 18:04:43 2009 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 19:48:08 2009 -0400"
      },
      "message": "nfs: Remove reference to generic_osync_inode from a comment\n\ngeneric_file_direct_write() no longer calls generic_osync_inode() so remove the\ncomment.\n\nCC: linux-nfs@vger.kernel.org\nCC: Neil Brown \u003cneilb@suse.de\u003e\nCC: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1ae88b2e446261c038f2c0c3150ffae142b227a2",
      "tree": "b3c9c11e4391c59086308e2674661688db5b12f5",
      "parents": [
        "7cb7beb31aa3d941833b6a6e553687422c31e4b6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 12 09:12:30 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 12 08:21:39 2009 -0700"
      },
      "message": "NFS: Fix an O_DIRECT Oops...\n\nWe can\u0027t call nfs_readdata_release()/nfs_writedata_release() without\nfirst initialising and referencing args.context. Doing so inside\nnfs_direct_read_schedule_segment()/nfs_direct_write_schedule_segment()\ncauses an Oops.\n\nWe should rather be calling nfs_readdata_free()/nfs_writedata_free() in\nthose cases.\n\nLooking at the O_DIRECT code, the \"struct nfs_direct_req\" is already\nreferencing the nfs_open_context for us. Since the readdata and writedata\nstructures carry a reference to that, we can simplify things by getting rid\nof the extra nfs_open_context references, so that we can replace all\ninstances of nfs_readdata_release()/nfs_writedata_release().\n\nReported-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21d9a851aaa4161a9fddde720594659f3dae7fdd",
      "tree": "6c18c057a56d5318a8e46d4615c03fefd5f5d498",
      "parents": [
        "def6ed7ef45ed19c3d6ca765f3bfdff1fe4c6bba"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:27 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:50 2009 -0700"
      },
      "message": "nfs41 commit sequence setup done support\n\nSeparate commit calls from nfs41: sequence setup/done support\n\nImplement the commit rpc_call_prepare method for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Support sessions with O_DIRECT.]\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: separate free slot from sequence done]\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson\u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "def6ed7ef45ed19c3d6ca765f3bfdff1fe4c6bba",
      "tree": "98e072aa00e6c284dac719c6c7f97abd7c930d90",
      "parents": [
        "f11c88af26453aee2823a1fd9120d0cd8dae7b9a"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:26 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:49 2009 -0700"
      },
      "message": "nfs41 write sequence setup done support\n\nSeparate write calls from nfs41: sequence setup/done support\n\nImplement the write rpc_call_prepare method for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[move the nfs4_sequence_free_slot call in nfs_readpage_retry from]\n[nfs41: separate free slot from sequence done\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Support sessions with O_DIRECT.]\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f11c88af26453aee2823a1fd9120d0cd8dae7b9a",
      "tree": "2a914fad3197bb9c28477e7a6224489acc11ae5d",
      "parents": [
        "472cfbd9b97be210a9b61ac1c6a774cd456ea9d2"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Apr 01 09:22:25 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 10:46:48 2009 -0700"
      },
      "message": "nfs41: read sequence setup/done support\n\nImplement the read rpc_call_prepare method for\nasynchronuos nfs rpcs, call nfs41_setup_sequence from\nrespective rpc_call_validate_args methods.\n\nCall nfs4_sequence_done from respective rpc_call_done methods.\n\nNote that we need to pass a pointer to the nfs_server in calls data\nfor passing on to nfs4_sequence_done.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: client data server write validate and release]\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[move the nfs4_sequence_free_slot call in nfs_readpage_retry from]\n[nfs41: separate free slot from sequence done]\n[remove nfs_readargs.nfs_server, use calldata-\u003einode instead]\nSigned-off-by: Andy Adamson \u003candros@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Support sessions with O_DIRECT]\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: nfs4_sequence_free_slot use nfs_client for data server]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6da24bc9cfc645c619992e39aab09747164c9f14",
      "tree": "a2d092a395d219db6b251d4d7f481ca0f9f7ecb0",
      "parents": [
        "b7eaefaa8722fd98e5c2632640d1abd2b0c83e84"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:04 2008 -0400"
      },
      "message": "NFS: Use NFSDBG_FILE for all fops\n\nClean up: some fops use NFSDBG_FILE, some use NFSDBG_VFS.  Let\u0027s use\nNFSDBG_FILE for all fops, and consistently report file names instead\nof inode numbers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\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": "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": "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": "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": "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": "0773769191d943358a8392fa86abd756d004c4b6",
      "tree": "2eeba848f7c1e6ba90696190f05db26c2f31655e",
      "parents": [
        "e8f5d77c8029ff8f5dcd1dfc133aac0bbbffd92b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 25 18:42:54 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:39 2008 -0500"
      },
      "message": "NFS/SUNRPC: Convert users of rpc_init_task+rpc_execute to rpc_run_task()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bdc7f021f3a1fade77adf3c2d7f65690566fddfe",
      "tree": "c076431ac83fc75cde00dc3d3a218fabae449980",
      "parents": [
        "b3ef8b3bb93300e58a4c4806207de3de4eb76f48"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:40:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:32 2008 -0500"
      },
      "message": "NFS: Clean up the (commit|read|write)_setup() callback routines\n\nMove the common code for setting up the nfs_write_data and nfs_read_data\nstructures into fs/nfs/read.c, fs/nfs/write.c and fs/nfs/direct.c.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3ff7576ddac06c3d07089e241b40826d24bbf1ac",
      "tree": "7f5998434b7d0dd1f08ff7ee65c93fab4861a6d3",
      "parents": [
        "c970aa85e71bd581726c42df843f6f129db275ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:40:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:30 2008 -0500"
      },
      "message": "SUNRPC: Clean up the initialisation of priority queue scheduling info.\n\nWe want the default scheduling priority (priority \u003d\u003d 0) to remain\nRPC_PRIORITY_NORMAL.\n\nAlso ensure that the priority wait queue scheduling is per process id\ninstead of sometimes being per thread, and sometimes being per inode.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "84115e1cd4a3614c4e566d4cce31381dce3dbef9",
      "tree": "01b2de7163deb6b3a789811183d8b8c1329b900c",
      "parents": [
        "e8914c65f7f8d4e8701b8e78a12b714872ea0402"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:39:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:30 2008 -0500"
      },
      "message": "SUNRPC: Cleanup of rpc_task initialisation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a5576cfa5cd8d8aa874bd4ee500dc8a2e7cbad18",
      "tree": "daf29a5b4ad3c0594f6d99b9ed23537e90a2dc9d",
      "parents": [
        "50e1092b3a119bb4660bb6bd2e1749dc2d8ac62e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 12 11:08:33 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 12 11:08:33 2007 -0500"
      },
      "message": "Revert \"NFS: Ensure we return zero if applications attempt to write zero bytes\"\n\nThis reverts commit b9148c6b80d802dbc2a7530b29915a80432e50c7.\n\nOn Wed, 12 Dec 2007 10:57:30 -0500, Chuck Lever wrote\n\u003e commit b9148c6b should be reverted.  It was recently forward-ported\n\u003e from some years-old patches, and is clearly not needed now.\n\u003e\n\u003e On Dec 11, 2007, at 5:21 PM, Adrian Bunk wrote:\n\u003e\n\u003e\u003e This code became dead after commit\n\u003e\u003e b9148c6b80d802dbc2a7530b29915a80432e50c7\n\u003e\u003e (which BTW doesn\u0027t seem to have changed any behaviour) and can\n\u003e\u003e therefore\n\u003e\u003e be removed.\n\u003e\u003e\n\u003e\u003e Spotted by the Coverity checker.\n\u003e\u003e\n\u003e\u003e Signed-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n\u003e\u003e\n\u003e\u003e ---\n\u003e\u003e --- linux-2.6/fs/nfs/direct.c.old     2007-12-02 21:54:53.000000000 +0100\n\u003e\u003e +++ linux-2.6/fs/nfs/direct.c 2007-12-02 21:55:10.000000000 +0100\n\u003e\u003e @@ -897,15 +897,12 @@ ssize_t nfs_file_direct_write(struct kio\n\u003e\u003e       if (!count)\n\u003e\u003e               goto out;       /* return 0 */\n\u003e\u003e\n\u003e\u003e       retval \u003d -EINVAL;\n\u003e\u003e       if ((ssize_t) count \u003c 0)\n\u003e\u003e               goto out;\n\u003e\u003e -     retval \u003d 0;\n\u003e\u003e -     if (!count)\n\u003e\u003e -             goto out;\n\u003e\u003e\n\u003e\u003e       retval \u003d nfs_sync_mapping(mapping);\n\u003e\u003e       if (retval)\n\u003e\u003e               goto out;\n\u003e\u003e\n\u003e\u003e       retval \u003d nfs_direct_write(iocb, iov, nr_segs, pos, count);\n\u003e\u003e\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "150030b78a454ba50d5e267b0dcf01b162809192",
      "tree": "4de766e7abbfd73a052f14f8efd3a26eb7b59d87",
      "parents": [
        "009e577e079656d51d0fe9b15e61e41b00816c29"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 16:24:39 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:40:25 2007 -0500"
      },
      "message": "NFS: Switch from intr mount option to TASK_KILLABLE\n\nBy using the TASK_KILLABLE infrastructure, we can get rid of the \u0027intr\u0027\nmount option.  We have to use _killable everywhere instead of _interruptible\nas we get rid of rpc_clnt_sigmask/sigunmask.\n\nSigned-off-by: Liam R. Howlett \u003chowlett@gmail.com\u003e\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "02fe494619d525ea803ab1f4f671186dc8a52f7a",
      "tree": "fbbb37ca394e736b979254f811b10da888cbeca2",
      "parents": [
        "b9148c6b80d802dbc2a7530b29915a80432e50c7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Nov 12 12:17:03 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 26 16:32:40 2007 -0500"
      },
      "message": "NFS: Clean up new multi-segment direct I/O changes\n\nSimplify calling sequence of nfs_direct_{read,write}_schedule(), and\nrename them to reflect their new role.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b9148c6b80d802dbc2a7530b29915a80432e50c7",
      "tree": "0388ff65beef42a21d1bd30a4868259f9a3573d2",
      "parents": [
        "c216fd708e1a97431925ecffd6d1896cff61df0a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Nov 12 12:16:58 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 26 16:32:38 2007 -0500"
      },
      "message": "NFS: Ensure we return zero if applications attempt to write zero bytes\n\nA zero byte count direct write request should be a successful no-op, not an\nerror.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c216fd708e1a97431925ecffd6d1896cff61df0a",
      "tree": "3f6e61bb72f5c852773faad9a5baaec00adae39e",
      "parents": [
        "19f737879cc623c3aa73e655465faa3bff121768"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Nov 12 12:16:52 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 26 16:32:36 2007 -0500"
      },
      "message": "NFS: Support multiple segment iovecs in the NFS direct I/O path\n\nAllow applications to perform asynchronous scatter-gather direct I/O\nto NFS files.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "19f737879cc623c3aa73e655465faa3bff121768",
      "tree": "12b96a6b345892592260ce55aadb7528ef3e516f",
      "parents": [
        "014313a9d66272ed37b9ebd64c3f30b596a4c8e1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Nov 12 12:16:47 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 26 16:32:35 2007 -0500"
      },
      "message": "NFS: Introduce iovec I/O helpers to fs/nfs/direct.c\n\nAdd helpers that iterate over multi-segment iovecs.  These will\nbe used to support multi-segment scatter/gather direct I/O in a\nlater patch.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "432409eebcdec38ff6fa949f097b5438d588faa5",
      "tree": "4418076abd99c105dd0ea68e9d33c2dd2333b6c0",
      "parents": [
        "a7aed1c2dc4939d1d61285c738ad32700d791692"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 23 17:09:13 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 23 16:41:21 2007 -0700"
      },
      "message": "NFS: Fix for bug in handling of errors for O_DIRECT writes\n\nCommit eda3cef8dd2b83875affe82595db9d0c278879b2 (\"NFS: Fix error\nhandling in nfs_direct_write_result()\") ensured that if a WRITE returns\nan error, then data-\u003eres.verf-\u003ecommitted is not tested (as it is not\ninitialised).\n\nThen commit 60fa3f769f7651a60125a0f44e3ffe3246d7cf39 (\"NFS: Fix two bugs\nin the O_DIRECT write code\") inadvertently reverted this while fixing\nother problems.\n\nSo move the test so that we never examine -\u003ecommitted in an error case,\nand fix a speeling error while we are there.\n\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60ccd4ec4170c9487e3792322626acd160197bce",
      "tree": "b35353518bd7945a40e39edfa543ce80aaa3f8b4",
      "parents": [
        "80eb209def76d375677840800eb838abce1e6639"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Sep 29 17:48:19 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:19:53 2007 -0400"
      },
      "message": "NFS: Remove nfs_begin_data_update/nfs_end_data_update\n\nThe lower level routines in fs/nfs/proc.c, fs/nfs/nfs3proc.c and\nfs/nfs/nfs4proc.c should already be dealing with the revalidation issues.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd3758e37ddea66fccca7d93c4b601e8a2e51926",
      "tree": "07566d3ee457524a97b534a4f214b9178b1278c8",
      "parents": [
        "c03025d55540bd648f2546659090140ecc835572"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 10 17:44:32 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:31 2007 -0400"
      },
      "message": "NFS: Replace file-\u003eprivate_data with calls to nfs_file_open_context()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "88be9f990fe70f0f177ef44a16a477599e91f825",
      "tree": "d48ed0c934fc20dc3f7cacfc3b1eca3058246b65",
      "parents": [
        "de05a0cc2a2ae16eb8d8dbf88fe728ace45beb9a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 10:42:27 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Replace vfsmount and dentry in nfs_open_context with struct path\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d9df8d6b38228afab519094048aa2c082b0b2cf4",
      "tree": "7bbe92c2ac8e3eab2179cd194dccc8f30bf63df5",
      "parents": [
        "070ea60214c1894c9eec86ca9aa5dff57a5ab525"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 10:22:20 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Don\u0027t fail an O_DIRECT read/write if get_user_pages() returns pages\n\nThere is no need to fail the entire O_DIRECT read/write just because\nget_user_pages() returned fewer pages than we requested.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "070ea60214c1894c9eec86ca9aa5dff57a5ab525",
      "tree": "ee77da93e0faa6a893d8ad6dacaf1943de7ffbae",
      "parents": [
        "4eb6bf6bfb580afaf1e1a1d30cba17a078530cf4"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sat May 19 17:22:52 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:23 2007 -0400"
      },
      "message": "NFS: Clean ups in fs/nfs/direct.c\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b4946ffb1860597b187d78d61ac6504177eb0ff8",
      "tree": "56e5df1992aa478b806e5a768eda668543a5bb89",
      "parents": [
        "7a74fc4925067c2102175baef73f9b07ab519b71"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 30 12:58:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 30 16:26:01 2007 -0400"
      },
      "message": "NFS: Fix a refcount leakage in O_DIRECT\n\nThe current code is leaking a reference to dreq-\u003ekref when the calls to\nnfs_direct_read_schedule() and nfs_direct_write_schedule() return an\nerror.\nThis patch moves the call to kref_put() from nfs_direct_wait() back into\nnfs_direct_read() and nfs_direct_write() (which are the functions that\nactually took the reference in the first place) fixing the leak.\n\nThanks to Denis V. Lunev for spotting the bug and proposing the original\nfix.\n\nAcked-by: Denis V. Lunev \u003cdlunev@gmail.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d4a8f3677fe2c2fc86443254fe42825e244c194d",
      "tree": "7b3b31104103208c852ad30616667aeb5256f34e",
      "parents": [
        "749e146e01cf87ce3c1d6f6077b877471b04df5b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 10:22:27 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 11:18:18 2007 -0400"
      },
      "message": "NFS: Fix nfs_direct_dirty_pages()\n\nWe only need to dirty the pages that were actually read in.\n\nAlso convert nfs_direct_dirty_pages() to call set_page_dirty() instead of\nset_page_dirty_lock(). A call to lock_page() is unacceptable in an rpciod\ncallback function.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "749e146e01cf87ce3c1d6f6077b877471b04df5b",
      "tree": "86c694a9c6dd990e445eb7be38de43255d0336ed",
      "parents": [
        "7fe7f8487ae742239dd8c66596e2311c30d057d1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sat May 19 17:22:46 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 10:44:20 2007 -0400"
      },
      "message": "NFS: Fix handful of compiler warnings in direct.c\n\nThis patch fixes a couple of signage issues that were causing an Oops\nwhen running the LTP diotest4 test. get_user_pages() returns a signed\nerror, hence we need to be careful when comparing with the unsigned\nnumber of pages from data-\u003enpages.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d5658c949e6d89edc579a1f112aeee3bc232a8e",
      "tree": "f206d3f6809eeb0ca23c1999cf79aa294968b113",
      "parents": [
        "c63c7b051395368573779c8309aa5c990dcf2f96"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 10 09:26:35 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:07 2007 -0700"
      },
      "message": "NFS: Fix a buffer overflow in the allocation of struct nfs_read/writedata\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "60fa3f769f7651a60125a0f44e3ffe3246d7cf39",
      "tree": "1acbd0749726d8bddafab619e173874af0153c84",
      "parents": [
        "e1552e199857109d4b25b9163eff4646726eee3d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 14 19:11:52 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Apr 14 21:46:48 2007 -0700"
      },
      "message": "NFS: Fix two bugs in the O_DIRECT write code\n\nDo not flag an error if the COMMIT call fails and we decide to resend the\nwrites. Let the resend flag the error if it fails.\n\nIf a write has failed, then nfs_direct_write_result should not attempt to\nsend a commit. It should just exit asap and return the error to the user.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3f565b1e530a756472401835107d08fd291f242",
      "tree": "84a15e4810f63689e3f85bbbc6497ee41934705e",
      "parents": [
        "4dc2eaecd4cf0687727e418540bccf956a62ebcf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jan 31 12:14:01 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:09 2007 -0800"
      },
      "message": "NFS: fix print format for tk_pid\n\nThe tk_pid field is an unsigned short.  The proper print format specifier for\nthat type is %5u, not %4d.\n\nAlso clean up some miscellaneous print formatting nits.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01cce933d8b524d9312f5098c70fa1b6ac190572",
      "tree": "7601e02e874a6eb44faca3cdf06664c7377ac687",
      "parents": [
        "2485822d51f8b338d289abe00eb7ce5249794a08"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] nfs: change uses of f_{dentry,vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the nfs\nclient code.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "21b4e736922f546e0f1aa7b9d6c442f309a2444a",
      "tree": "e1be8645297f8ebe87445251743ebcc52081a20d",
      "parents": [
        "34161db6b14d984fb9b06c735b7b42f8803f6851",
        "68380b581383c028830f79ec2670f4a193854aa6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 16:35:17 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 16:35:17 2006 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/ into merge_linus\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a99b71c9c43499bf2312c64f5c1d367aaf559dc4",
      "tree": "a9fa03a8dcee03c6f05bd286be368396176b13db",
      "parents": [
        "6d5fcb5a52bfd00eab3ba2c7ca890823388436ae"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Tue Oct 17 10:24:36 2006 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:30 2006 -0500"
      },
      "message": "NFS: Remove use of the Big Kernel Lock around calls to rpc_execute.\n\nRemove use of the Big Kernel Lock around calls to rpc_execute.\n\nSigned-off-by: Frank Filz \u003cffilz@us.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd9ae2b6a75bb1fa0d370929c2d7a7da1ed719d9",
      "tree": "1bf943b54f47bfbf5198b08b930bd09099ff99b7",
      "parents": [
        "13bbc06af8a5f65df0f888b442e557c617cadba7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 19 23:28:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:39 2006 -0700"
      },
      "message": "[PATCH] NFS: Deal with failure of invalidate_inode_pages2()\n\nIf invalidate_inode_pages2() fails, then it should in principle just be\nbecause the current process was signalled.  In that case, we just want to\nensure that the inode\u0027s page cache remains marked as invalid.\n\nAlso add a helper to allow the O_DIRECT code to simply mark the page cache as\ninvalid once it is finished writing, instead of calling\ninvalidate_inode_pages2() itself.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eda3cef8dd2b83875affe82595db9d0c278879b2",
      "tree": "8243651c72751fc2204c8423f8a372c0dddba8a4",
      "parents": [
        "b6dff26a08189932eeb0fa4261e09e733b0fc540"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 19 23:28:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:38 2006 -0700"
      },
      "message": "[PATCH] NFS: Fix error handling in nfs_direct_write_result()\n\nIf the RPC call tanked, we should not be checking the return value\nof data-\u003eres.verf-\u003ecommitted, since it is unlikely to even be\ninitialised.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "027445c37282bc1ed26add45e573ad2d3e4860a5",
      "tree": "93eab101a938ffebaea64703033c8649df4d73f0",
      "parents": [
        "9ea0f9499d15c49df23e7aac4332d830c40e12d0"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sat Sep 30 23:28:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:28 2006 -0700"
      },
      "message": "[PATCH] Vectorize aio_read/aio_write fileop methods\n\nThis patch vectorizes aio_read() and aio_write() methods to prepare for\ncollapsing all aio \u0026 vectored operations into one interface - which is\naio_read()/aio_write().\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Holzheu \u003cHOLZHEU@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a1d92c10dd24bbdc28b3d6e2d03ec199dd3a65b",
      "tree": "fade83955f75e718e39153d6f81d221403338bed",
      "parents": [
        "f52720ca5f48574e347dff35ffe6b389ace61537"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 27 01:49:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:10 2006 -0700"
      },
      "message": "[PATCH] Really ignore kmem_cache_destroy return value\n\n* Rougly half of callers already do it by not checking return value\n* Code in drivers/acpi/osl.c does the following to be sure:\n\n\t(void)kmem_cache_destroy(cache);\n\n* Those who check it printk something, however, slab_error already printed\n  the name of failed cache.\n* XFS BUGs on failed kmem_cache_destroy which is not the decision\n  low-level filesystem driver should make. Converted to ignore.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e9f7bee1df223dcf83743b46cb06c08d95497ec0",
      "tree": "67beae4733ef0286645112a52623c81c8f8a19a9",
      "parents": [
        "016eb4a0ed06a3677d67a584da901f0e9a63c666"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 08 09:48:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 08 10:22:51 2006 -0700"
      },
      "message": "[PATCH] NFS: large non-page-aligned direct I/O clobbers memory\n\nThe logic in nfs_direct_read_schedule and nfs_direct_write_schedule can\nallow data-\u003enpages to be one larger than rpages.  This causes a page\npointer to be written beyond the end of the pagevec in nfs_read_data (or\nnfs_write_data).\n\nFix this by making nfs_(read|write)_alloc() calculate the size of the\npagevec array, and initialise data-\u003enpages.\n\nAlso get rid of the redundant argument to nfs_commit_alloc().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "026477c1141b67e98e3bd8bdedb7d4b88a3ecd09",
      "tree": "2624a44924c625c367f3cebf937853b9da2de282",
      "parents": [
        "9f2fa466383ce100b90fe52cb4489d7a26bf72a9",
        "29454dde27d8e340bb1987bad9aa504af7081eba"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 03 13:49:45 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 03 13:49:45 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "607f31e80b6f982d7c0dd7a5045377fc368fe507",
      "tree": "caa7087b1aa90fe620f8a7a564bf07d94f8c1b69",
      "parents": [
        "79bc79b07c9c6f8ae9290704e9e503a9327fcbb2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 28 16:52:45 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 28 16:52:45 2006 -0400"
      },
      "message": "Revert \"Merge branch \u0027odirect\u0027\"\n\nThis reverts ccf01ef7aa9c6c293a1c64c27331a2ce227916ec commit.\n\nNo idea how git managed this one: when I asked it to merge the odirect\ntopic branch it actually generated a patch which reverted the change.\n\nReverting the \u0027merge\u0027 will once again reveal Chuck\u0027s recent NFS/O_DIRECT\nwork to the world.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "266bee88699ddbde42ab303bbc426a105cc49809",
      "tree": "2d2b57f869321e177caf173af8d43b5d88c4a79d",
      "parents": [
        "e7374e48009a15a680d53bd1f9828b9b79a8aac9"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue Jun 27 12:59:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 14:07:19 2006 -0700"
      },
      "message": "[PATCH] fix static linking of NFS\n\nBuilds on ARM report link problems with common configurations like\nstatically linked NFS (for nfsroot).  The symptom is that __init\nsection code references __exit section code; that won\u0027t work since\nthe exit sections are discarded (since they can never be called).\n\nThe best fix for these particular cases would be an \"__init_or_exit\"\nsection annotation.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ccf01ef7aa9c6c293a1c64c27331a2ce227916ec",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "82b145c5a572f7fa7211dffe2097234dc91bcecc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:27:31 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:27:31 2006 -0400"
      },
      "message": "Merge branch \u0027odirect\u0027\n"
    },
    {
      "commit": "82b145c5a572f7fa7211dffe2097234dc91bcecc",
      "tree": "35689aa653d29f17681f13d89d592c88e7c112e5",
      "parents": [
        "06cf6f2ed0b19629700794727d86ed57b9c0583e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:57:03 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: alloc nfs_read/write_data as direct I/O is scheduled\n\nRe-arrange the logic in the NFS direct I/O path so that nfs_read/write_data\nstructs are allocated just before they are scheduled, rather than\nallocating them all at once before we start scheduling requests.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "06cf6f2ed0b19629700794727d86ed57b9c0583e",
      "tree": "20630465974dc9391af486d8609aae077701b596",
      "parents": [
        "9c93ab7dff5eb22027ab15010557bb73f9b44c99"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:56:49 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: Eliminate nfs_get_user_pages()\n\nNeil Brown observed that the kmalloc() in nfs_get_user_pages() is more\nlikely to fail if the I/O is large enough to require the allocation of more\nthan a single page to keep track of all the pinned pages in the user\u0027s\nbuffer.\n\nInstead of tracking one large page array per dreq/iocb, track pages per\nnfs_read/write_data, just like the cached I/O path does.  An array for\npages is already allocated for us by nfs_readdata_alloc() (and the write\nand commit equivalents).\n\nThis is also required for adding support for vectored I/O to the NFS direct\nI/O path.\n\nThe original reason to pin the user buffer and allocate all the NFS data\nstructures before trying to schedule I/O was to ensure all needed resources\nare allocated on the client before starting to send requests.  This reduces\nthe chance that resource exhaustion on the client will cause a short read\nor write.\n\nOn the other hand, for an application making very large application I/O\nrequests, this means that it will be nearly impossible for the application\nto make forward progress on a resource-limited client.\n\nThus, moving the buffer pinning functionality into the I/O scheduling\nloops should be good for scalability.  The next patch will do the same for\nNFS data structure allocation.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9c93ab7dff5eb22027ab15010557bb73f9b44c99",
      "tree": "654a010c2aa161d0f9f49d7137410aaca1ebd2ba",
      "parents": [
        "51a7bc6caec94bab256b272bffd24d00ea81c698"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:56:31 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: refactor nfs_direct_free_user_pages\n\nClean-up and fix a minor bug: the logic was dirtying page cache pages on\nboth read and write operations.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51a7bc6caec94bab256b272bffd24d00ea81c698",
      "tree": "29e19b93449e6affb53a737b73ddec847e21cc50",
      "parents": [
        "fedb595c66e1fbd5acafe0d43b7e95c13c936d61"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:56:16 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: remove user_addr, user_count, and pos from nfs_direct_req\n\nMake the user_addr, user_count, and pos parameters explicit to the\nscheduler routines, and remove the fields from nfs_direct_req.  The\niovec API will be passing in a series of these, not just one set.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fedb595c66e1fbd5acafe0d43b7e95c13c936d61",
      "tree": "e865ecc2399c09b7164c2f2c13a2c5c10c8d4de1",
      "parents": [
        "b1c5921c5b715c207d7fe77cd7aaafbb322f09f5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:55:45 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:38 2006 -0400"
      },
      "message": "NFS: \"open code\" the NFS direct write rescheduler\n\nAn NFSv3/v4 client must reschedule on-the-wire writes if the writes are\nUNSTABLE, and the server reboots before the client can complete a\nsubsequent COMMIT request.\n\nTo support direct asynchronous scatter-gather writes, the write\nrescheduler in fs/nfs/direct.c must not depend on the I/O parameters\nin the controlling nfs_direct_req structure.  iovecs can be somewhat\narbitrarily complex, so there could be an unbounded amount of information\nto save for a rarely encountered requirement.\n\nRefactor the direct write rescheduler so it uses information from each\nnfs_write_data structure to reschedule writes, instead of caching that\ninformation in the controlling nfs_direct_req structure.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b1c5921c5b715c207d7fe77cd7aaafbb322f09f5",
      "tree": "c8a56c56740efa728b7d3b935b6cb09330a4817f",
      "parents": [
        "816724e65c72a90a44fbad0ef0b59b186c85fa90"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:55:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:38 2006 -0400"
      },
      "message": "NFS: Separate functions for counting outstanding NFS direct I/Os\n\nFactor out the logic that increments and decrements the outstanding I/O\ncount.  This will be a commonly used bit of code in upcoming patches.\nAlso make this an atomic_t again, since it will be very often manipulated\noutside dreq-\u003espin lock.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f7b422b17ee5ee4920e8ae24a6ad04bf3481ce72",
      "tree": "4ae8372762efc092ceb4f884b57cad1efe6594de",
      "parents": [
        "4e5ccf60c5aa79d325c123f47d288a068166f389"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "message": "NFS: Split fs/nfs/inode.c\n\nAs fs/nfs/inode.c is rather large, heterogenous and unwieldy, the attached\npatch splits it up into a number of files:\n\n (*) fs/nfs/inode.c\n\n     Strictly inode specific functions.\n\n (*) fs/nfs/super.c\n\n     Superblock management functions for NFS and NFS4, normal access, clones\n     and referrals.  The NFS4 superblock functions _could_ move out into a\n     separate conditionally compiled file, but it\u0027s probably not worth it as\n     there\u0027re so many common bits.\n\n (*) fs/nfs/namespace.c\n\n     Some namespace-specific functions have been moved here.\n\n (*) fs/nfs/nfs4namespace.c\n\n     NFS4-specific namespace functions (this could be merged into the previous\n     file).  This file is conditionally compiled.\n\n (*) fs/nfs/internal.h\n\n     Inter-file declarations, plus a few simple utility functions moved from\n     fs/nfs/inode.c.\n\n     Additionally, all the in-.c-file externs have been moved here, and those\n     files they were moved from now includes this file.\n\nFor the most part, the functions have not been changed, only some multiplexor\nfunctions have changed significantly.\n\nI\u0027ve also:\n\n (*) Added some extra banner comments above some functions.\n\n (*) Rearranged the function order within the files to be more logical and\n     better grouped (IMO), though someone may prefer a different order.\n\n (*) Reduced the number of #ifdefs in .c files.\n\n (*) Added missing __init and __exit directives.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "e99170ff3b799a9fd43d538932a9231fac1de9d4",
      "tree": "b5926023a010c4f8b3993ff6d06cfd51a9462613",
      "parents": [
        "7866babad542bb5e1dc95deb5800b577abef58dd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 18 13:21:42 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 12:43:47 2006 -0400"
      },
      "message": "NFS,SUNRPC: Fix compiler warnings if CONFIG_PROC_FS \u0026 CONFIG_SYSCTL are unset\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "53846a21c1766326bb14ce8ab6e997a0c120675d",
      "tree": "37b04485e29844b4e734479181276a2f4d2447e4",
      "parents": [
        "2e9abdd9bad485970b37cd53a82f92702054984c",
        "1ebbe2b20091d306453a5cf480a87e6cd28ae76f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (103 commits)\n  SUNRPC,RPCSEC_GSS: spkm3--fix config dependencies\n  SUNRPC,RPCSEC_GSS: spkm3: import contexts using NID_cast5_cbc\n  LOCKD: Make nlmsvc_traverse_shares return void\n  LOCKD: nlmsvc_traverse_blocks return is unused\n  SUNRPC,RPCSEC_GSS: fix krb5 sequence numbers.\n  NFSv4: Dont list system.nfs4_acl for filesystems that don\u0027t support it.\n  SUNRPC,RPCSEC_GSS: remove unnecessary kmalloc of a checksum\n  SUNRPC: Ensure rpc_call_async() always calls tk_ops-\u003erpc_release()\n  SUNRPC: Fix memory barriers for req-\u003erq_received\n  NFS: Fix a race in nfs_sync_inode()\n  NFS: Clean up nfs_flush_list()\n  NFS: Fix a race with PG_private and nfs_release_page()\n  NFSv4: Ensure the callback daemon flushes signals\n  SUNRPC: Fix a \u0027Busy inodes\u0027 error in rpc_pipefs\n  NFS, NLM: Allow blocking locks to respect signals\n  NFS: Make nfs_fhget() return appropriate error values\n  NFSv4: Fix an oops in nfs4_fill_super\n  lockd: blocks should hold a reference to the nlm_file\n  NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n  NFSv4: Send the delegation stateid for SETATTR calls\n  ...\n"
    },
    {
      "commit": "fffb60f93ce5880aade88e01d7133b52a4879710",
      "tree": "7882f0550af8580c0646306f6d391fe610f7ef8c",
      "parents": [
        "4b6a9316fab51af611dc8671f296734089f6a22a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache format\n\nRewrap the overly long source code lines resulting from the previous\npatch\u0027s addition of the slab cache flag SLAB_MEM_SPREAD.  This patch\ncontains only formatting changes, and no function change.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6a9316fab51af611dc8671f296734089f6a22a",
      "tree": "078f8f0f01a206af529bef137d5b71515c39053d",
      "parents": [
        "44110fe385af23ca5eee8a6ad4ff55d50339097a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache filesystems\n\nMark file system inode and similar slab caches subject to SLAB_MEM_SPREAD\nmemory spreading.\n\nIf a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that\u0027s\nin a cpuset with the \u0027memory_spread_slab\u0027 option enabled goes to allocate\nfrom such a slab cache, the allocations are spread evenly over all the\nmemory nodes (task-\u003emems_allowed) allowed to that task, instead of favoring\nallocation on the node local to the current cpu.\n\nThe following inode and similar caches are marked SLAB_MEM_SPREAD:\n\n    file                               cache\n    \u003d\u003d\u003d\u003d                               \u003d\u003d\u003d\u003d\u003d\n    fs/adfs/super.c                    adfs_inode_cache\n    fs/affs/super.c                    affs_inode_cache\n    fs/befs/linuxvfs.c                 befs_inode_cache\n    fs/bfs/inode.c                     bfs_inode_cache\n    fs/block_dev.c                     bdev_cache\n    fs/cifs/cifsfs.c                   cifs_inode_cache\n    fs/coda/inode.c                    coda_inode_cache\n    fs/dquot.c                         dquot\n    fs/efs/super.c                     efs_inode_cache\n    fs/ext2/super.c                    ext2_inode_cache\n    fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr\n    fs/ext3/super.c                    ext3_inode_cache\n    fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr\n    fs/fat/cache.c                     fat_cache\n    fs/fat/inode.c                     fat_inode_cache\n    fs/freevxfs/vxfs_super.c           vxfs_inode\n    fs/hpfs/super.c                    hpfs_inode_cache\n    fs/isofs/inode.c                   isofs_inode_cache\n    fs/jffs/inode-v23.c                jffs_fm\n    fs/jffs2/super.c                   jffs2_i\n    fs/jfs/super.c                     jfs_ip\n    fs/minix/inode.c                   minix_inode_cache\n    fs/ncpfs/inode.c                   ncp_inode_cache\n    fs/nfs/direct.c                    nfs_direct_cache\n    fs/nfs/inode.c                     nfs_inode_cache\n    fs/ntfs/super.c                    ntfs_big_inode_cache_name\n    fs/ntfs/super.c                    ntfs_inode_cache\n    fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache\n    fs/ocfs2/super.c                   ocfs2_inode_cache\n    fs/proc/inode.c                    proc_inode_cache\n    fs/qnx4/inode.c                    qnx4_inode_cache\n    fs/reiserfs/super.c                reiser_inode_cache\n    fs/romfs/inode.c                   romfs_inode_cache\n    fs/smbfs/inode.c                   smb_inode_cache\n    fs/sysv/inode.c                    sysv_inode_cache\n    fs/udf/super.c                     udf_inode_cache\n    fs/ufs/super.c                     ufs_inode_cache\n    net/socket.c                       sock_inode_cache\n    net/sunrpc/rpc_pipe.c              rpc_inode_cache\n\nThe choice of which slab caches to so mark was quite simple.  I marked\nthose already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,\ninode_cache, and buffer_head, which were marked in a previous patch.  Even\nthough SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same\npotentially large file system i/o related slab caches as we need for memory\nspreading.\n\nGiven that the rule now becomes \"wherever you would have used a\nSLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use\nthe SLAB_MEM_SPREAD flag too\", this should be easy enough to maintain.\nFuture file system writers will just copy one of the existing file system\nslab cache setups and tend to get it right without thinking.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "d72b7a6b26b9009b7a05117fe2e04b3a73ae4a5c"
}
