)]}'
{
  "log": [
    {
      "commit": "873feea09ebc980cbd3631b767356ce1eee65ec1",
      "tree": "59a8fce9b138086abee7cf845f62ff70a390cf81",
      "parents": [
        "ceb5bdc2d246f6d81cf61ed70f325308a11821d2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:06 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "fs: dcache per-inode inode alias locking\n\ndcache_inode_lock can be replaced with per-inode locking. Use existing\ninode-\u003ei_lock for this. This is slightly non-trivial because we sometimes\nneed to find the inode from the dentry, which requires d_inode to be\nstabilised (either with refcount or d_lock).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "949854d02455080d20cd3e1db28a3a18daf7599d",
      "tree": "9b13a6f86c1d0b91e462a471e53b0e717036b18e",
      "parents": [
        "9abca36087288fe28de4749c71ca003d4b9e3ed0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:37 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:22 2011 +1100"
      },
      "message": "fs: Use rename lock and RCU for multi-step operations\n\nThe remaining usages for dcache_lock is to allow atomic, multi-step read-side\noperations over the directory tree by excluding modifications to the tree.\nAlso, to walk in the leaf-\u003eroot direction in the tree where we don\u0027t have\na natural d_lock ordering.\n\nThis could be accomplished by taking every d_lock, but this would mean a\nhuge number of locks and actually gets very tricky.\n\nSolve this instead by using the rename seqlock for multi-step read-side\noperations, retry in case of a rename so we don\u0027t walk up the wrong parent.\nConcurrent dentry insertions are not serialised against.  Concurrent deletes\nare tricky when walking up the directory: our parent might have been deleted\nwhen dropping locks so also need to check and retry for that.\n\nWe can also use the rename lock in cases where livelock is a worry (and it\nis introduced in subsequent patch).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b23fb0a60379a95e10c671f646b259ea2558421e",
      "tree": "7c3644b91241d32fda502a7be0b78e4c225f8091",
      "parents": [
        "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:35 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:22 2011 +1100"
      },
      "message": "fs: scale inode alias list\n\nAdd a new lock, dcache_inode_lock, to protect the inode\u0027s i_dentry list\nfrom concurrent modification. d_alias is also protected by d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "5b362ac3799ff4225c40935500f520cad4d7ed66",
      "tree": "d87be1721c648a6c7d0a2c9933d1dae361507d99",
      "parents": [
        "2df485a774ba59c3f43bfe84107672c1d9b731a0"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 10 12:31:14 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 10 13:01:50 2010 -0500"
      },
      "message": "NFS: Fix panic after nfs_umount()\n\nAfter a few unsuccessful NFS mount attempts in which the client and\nserver cannot agree on an authentication flavor both support, the\nclient panics.  nfs_umount() is invoked in the kernel in this case.\n\nTurns out nfs_umount()\u0027s UMNT RPC invocation causes the RPC client to\nwrite off the end of the rpc_clnt\u0027s iostat array.  This is because the\nmount client\u0027s nrprocs field is initialized with the count of defined\nprocedures (two: MNT and UMNT), rather than the size of the client\u0027s\nproc array (four).\n\nThe fix is to use the same initialization technique used by most other\nupper layer clients in the kernel.\n\nIntroduced by commit 0b524123, which failed to update nrprocs when\nsupport was added for UMNT in the kernel.\n\nBugLink: https://bugzilla.kernel.org/show_bug.cgi?id\u003d24302\nBugLink: http://bugs.launchpad.net/bugs/683938\n\nReported-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nTested-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nCc: stable@kernel.org # \u003e\u003d 2.6.32\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2df485a774ba59c3f43bfe84107672c1d9b731a0",
      "tree": "a958e82f619290cb5cb28301e30186ef594cd7b4",
      "parents": [
        "0de1b7e800188782973598158e0acbb9e08e6c99"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 22:39:17 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 23:02:44 2010 -0500"
      },
      "message": "nfs: remove extraneous and problematic calls to nfs_clear_request\n\nWhen a nfs_page is freed, nfs_free_request is called which also calls\nnfs_clear_request to clean out the lock and open contexts and free the\npagecache page.\n\nHowever, a couple of places in the nfs code call nfs_clear_request\nthemselves. What happens here if the refcount on the request is still high?\nWe\u0027ll be releasing contexts and freeing pointers while the request is\npossibly still in use.\n\nRemove those bare calls to nfs_clear_context. That should only be done when\nthe request is being freed.\n\nNote that when doing this, we need to watch out for tests of req-\u003ewb_page.\nPreviously, nfs_set_page_tag_locked() and nfs_clear_page_tag_locked()\nwould check the value of req-\u003ewb_page to figure out if the page is mapped\ninto the nfsi-\u003enfs_page_tree. We now indicate the page is mapped using\nthe new bit PG_MAPPED in req-\u003ewb_flags .\n\nReported-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0de1b7e800188782973598158e0acbb9e08e6c99",
      "tree": "2f292659ac8e6a5c3d8ec55e7bdb9339cc37df0e",
      "parents": [
        "21ac19d484a8ffb66f64487846c8d53afef04d2b"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Sat Oct 30 10:19:33 2010 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 19:30:44 2010 -0500"
      },
      "message": "nfs: kernel should return EPROTONOSUPPORT when not support NFSv4\n\n  When nfs client(kernel) don\u0027t support NFSv4, maybe user build\n  kernel without NFSv4, there is a problem.\n\n  Using command \"mount SERVER-IP:/nfsv3 /mnt/\" to mount NFSv3\n  filesystem, mount should should success, but fail and get error:\n\n    \"mount.nfs: an incorrect mount option was specified\"\n\n  System call mount \"nfs\"(not \"nfs4\") with \"vers\u003d4\",\n  if CONFIG_NFS_V4 is not defined, the \"vers\u003d4\" will be parsed\n  as invalid argument and kernel return EINVAL to nfs-utils.\n\n  About that, we really want get EPROTONOSUPPORT rather than\n  EINVAL. This path make sure kernel parses argument success,\n  and return EPROTONOSUPPORT at nfs_validate_mount_data().\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "21ac19d484a8ffb66f64487846c8d53afef04d2b",
      "tree": "684f635b6d009a05e50499dfec4f7a7f96e0829d",
      "parents": [
        "08a22b392a141c201d7ed4d435de942aa853acd3"
      ],
      "author": {
        "name": "Sergey Vlasov",
        "email": "vsu@altlinux.ru",
        "time": "Sun Nov 28 21:04:05 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 19:30:43 2010 -0500"
      },
      "message": "NFS: Fix fcntl F_GETLK not reporting some conflicts\n\nThe commit 129a84de2347002f09721cda3155ccfd19fade40 (locks: fix F_GETLK\nregression (failure to find conflicts)) fixed the posix_test_lock()\nfunction by itself, however, its usage in NFS changed by the commit\n9d6a8c5c213e34c475e72b245a8eb709258e968c (locks: give posix_test_lock\nsame interface as -\u003elock) remained broken - subsequent NFS-specific\nlocking code received F_UNLCK instead of the user-specified lock type.\nTo fix the problem, fl-\u003efl_type needs to be saved before the\nposix_test_lock() call and restored if no local conflicts were reported.\n\nReference: https://bugzilla.kernel.org/show_bug.cgi?id\u003d23892\nTested-by: Alexander Morozov \u003camorozov@etersoft.ru\u003e\nSigned-off-by: Sergey Vlasov \u003cvsu@altlinux.ru\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "08a22b392a141c201d7ed4d435de942aa853acd3",
      "tree": "c8b0951250920d263e8774748f6cbc99dceca9d8",
      "parents": [
        "47c716cbf638a16583441d78be3fc24345eab636"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Dec 01 10:42:16 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 19:30:42 2010 -0500"
      },
      "message": "nfs: Discard ACL cache on mode update\n\nAn update of mode bits can result in ACL value being changed. We need\nto mark the acl cache invalid when we update mode. Similarly we need\nto update file attribute when we change ACL value\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "47c716cbf638a16583441d78be3fc24345eab636",
      "tree": "ee06a3e432e9fdc12438423745674442acbbeb0f",
      "parents": [
        "18fb5fe40ce7f789b5cfc3aa81ff1e6175b0a5be"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 12:44:56 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 14:09:02 2010 -0500"
      },
      "message": "NFS: Readdir cleanups\n\nNo functional changes, but clarify the code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "18fb5fe40ce7f789b5cfc3aa81ff1e6175b0a5be",
      "tree": "e7d191c921142ecb1cb2eba0634cb0c6ba89459d",
      "parents": [
        "11de3b11e08cac26d59e88efaf4e316701883552"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 12:41:58 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 07 12:41:58 2010 -0500"
      },
      "message": "NFS: nfs_readdir_search_for_cookie() don\u0027t mark as eof if cookie not found\n\nIf we\u0027re searching for a specific cookie, and it isn\u0027t found in the page\ncache, we should try an uncached_readdir(). To do so, we return EBADCOOKIE,\nbut we don\u0027t set desc-\u003eeof.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "11de3b11e08cac26d59e88efaf4e316701883552",
      "tree": "e4cc282e692560897c42c5fbc8df227d5da669d4",
      "parents": [
        "6072d13c429373c5d63b69dadbbef40a9b035552"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 01 14:17:06 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 02 09:58:00 2010 -0500"
      },
      "message": "NFS: Fix a memory leak in nfs_readdir\n\nWe need to ensure that the entries in the nfs_cache_array get cleared\nwhen the page is removed from the page cache. To do so, we use the\nfreepage address_space operation.\n\nChange nfs_readdir_clear_array to use kmap_atomic(), so that the\nfunction can be safely called from all contexts.\n\nFinally, modify the cache_page_release helper to call\nnfs_readdir_clear_array directly, when dealing with an anonymous\npage from \u0027uncached_readdir\u0027.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0aded708d125a3ff7e5abaea9c2d9c6d7ebbfdcd",
      "tree": "124bb3e0e1cd8104f9310f7df224ca00301c10c7",
      "parents": [
        "22a5b566c8c442b0b35b3b106795e2f2b3578096"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 30 21:56:32 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 01 08:16:16 2010 -0500"
      },
      "message": "NFS: Ensure we use the correct cookie in nfs_readdir_xdr_filler\n\nWe need to use the cookie from the previous array entry, not the\nactual cookie that we are searching for (except for the case of\nuncached_readdir).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "37a09f07459753e7c98d4e21f1c61e8756923f81",
      "tree": "eecab05dc4b4c2de61f4b31f51d301fdcf210737",
      "parents": [
        "e8a7e48bb248a1196484d3f8afa53bded2b24e71"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 30 12:42:34 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 30 10:18:49 2010 -0800"
      },
      "message": "NFS: Fix a readdirplus bug\n\nWhen comparing filehandles in the helper nfs_same_file(), we should not be\nusing \u0027strncmp()\u0027: filehandles are not null terminated strings.\n\nInstead, we should just use the existing helper nfs_compare_fh().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b26a0bf6ff398185546432420bb772bcfdf8d94",
      "tree": "705b94c8662cf18cf8cd18c6b8c68d751d87acb7",
      "parents": [
        "3020093f578fb6c9acc6914dfd887a1ebd1db659"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 14:26:44 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:48 2010 -0500"
      },
      "message": "NFS: Ensure we return the dirent-\u003ed_type when it is known\n\nStore the dirent-\u003ed_type in the struct nfs_cache_array_entry so that we\ncan use it in getdents() calls.\n\nThis fixes a regression with the new readdir code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3020093f578fb6c9acc6914dfd887a1ebd1db659",
      "tree": "473af4f139dcb3975b20bcd9d2e04fb1cadc97b3",
      "parents": [
        "ece0b4233b6b915d1f63add2bd9f2733aec6317a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 15:18:22 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:47 2010 -0500"
      },
      "message": "NFS: Correct the array bound calculation in nfs_readdir_add_to_array\n\nIt looks as if the array size calculation in MAX_READDIR_ARRAY does not\ntake the alignment of struct nfs_cache_array_entry into account.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ece0b4233b6b915d1f63add2bd9f2733aec6317a",
      "tree": "f0f9a2ec50079ccd0c95ddce082648ab25923cfe",
      "parents": [
        "85f8607e163f8d281fb407357279cb4ac6df12e6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 13:55:33 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:47 2010 -0500"
      },
      "message": "NFS: Don\u0027t ignore errors from nfs_do_filldir()\n\nWe should ignore the errors from the filldir callback, and just interpret\nthem as meaning we should exit, however we should definitely pass back\nENOMEM errors.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "85f8607e163f8d281fb407357279cb4ac6df12e6",
      "tree": "abfa44658e17b4c3522aac999c7736f5d4782ff6",
      "parents": [
        "7a8e1dc34f52fd2927dbf7e520d7cd8eadc51336"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 13:24:49 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:46 2010 -0500"
      },
      "message": "NFS: Fix the error handling in \"uncached_readdir()\"\n\nCurrently, uncached_readdir() is broken because if fails to handle\nthe results from nfs_readdir_xdr_to_array() correctly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7a8e1dc34f52fd2927dbf7e520d7cd8eadc51336",
      "tree": "de5e01e628e0fec4a20e335ef5a3163e307ba3fa",
      "parents": [
        "e7c58e974a0318fcca5368e7b3570e10e9ae9028"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 13:24:46 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:45 2010 -0500"
      },
      "message": "NFS: Fix a page leak in uncached_readdir()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e7c58e974a0318fcca5368e7b3570e10e9ae9028",
      "tree": "de7c5bf4d565ce0365af6fe1d82bd035deb37024",
      "parents": [
        "5c346854d8ce6ca91931f8fc9177934257a667d0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 13:22:24 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:44 2010 -0500"
      },
      "message": "NFS: Fix a page leak in nfs_do_filldir()\n\nnfs_do_filldir() must always free desc-\u003epage when it is done, otherwise\nwe end up leaking the page.\n\nAlso remove unused variable \u0027dentry\u0027.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5c346854d8ce6ca91931f8fc9177934257a667d0",
      "tree": "de10054f20a2bc3a2fc58ca394854d40aebc8654",
      "parents": [
        "463a376eae1c92a66c912af539bfd4bbefa37673"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 12:43:45 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:44 2010 -0500"
      },
      "message": "NFS: Assume eof if the server returns no readdir records\n\nSome servers are known to be buggy w.r.t. this. Deal with them...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "463a376eae1c92a66c912af539bfd4bbefa37673",
      "tree": "b6bc0eb099669ead19ef97f27c7e0b65d38bdb82",
      "parents": [
        "b47d19de2c714020ba8f5545a6e7d4968f37eb45"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 20 12:22:20 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 22 13:24:43 2010 -0500"
      },
      "message": "NFS: Buffer overflow in -\u003edecode_dirent() should not be fatal\n\nOverflowing the buffer in the readdir -\u003edecode_dirent() should not lead to\na fatal error, but rather to an attempt to reread the record in question.\n\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": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04e4bd1c67f941d81bff78a3b6b94194f081b7df",
      "tree": "7f6cd633219bc19d7a716a0c2af4eaae2b5170ba",
      "parents": [
        "94f58df8e545657f0b2d16eca1ac7a4ec39ed6be"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Nov 11 12:53:47 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 16 12:03:14 2010 -0500"
      },
      "message": "nfs: Ignore kmemleak false positive in nfs_readdir_make_qstr\n\nStrings allocated via kmemdup() in nfs_readdir_make_qstr() are\nreferenced from the nfs_cache_array which is stored in a page cache\npage. Kmemleak does not scan such pages and it reports several false\npositives. This patch annotates the string-\u003ename pointer so that\nkmemleak does not consider it a real leak.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ac39612824e1fad8baf82c2841e42b2142af3445",
      "tree": "12a841ca751a50f324dc97963579002943d0c3c9",
      "parents": [
        "8cd51a0ccd1beda4482507769887c0be9d70f8c1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 15 20:26:22 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 15 20:44:29 2010 -0500"
      },
      "message": "NFS: readdir shouldn\u0027t read beyond the reply returned by the server\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8cd51a0ccd1beda4482507769887c0be9d70f8c1",
      "tree": "3fe5c05dcc6e532641d1be4e797ab869c71c36ad",
      "parents": [
        "23ebbd9acf5756b6eb783df84403e3ab668a6bce"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 15 20:26:22 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 15 20:44:28 2010 -0500"
      },
      "message": "NFS: Fix a couple of regressions in readdir.\n\nFix up the issue that array-\u003eeof_index needs to be able to be set\neven if array-\u003esize \u003d\u003d 0.\n\nEnsure that we catch all important memory allocation error conditions\nand/or kmap() failures.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "23ebbd9acf5756b6eb783df84403e3ab668a6bce",
      "tree": "11f632c35ccd0569b70811ad7b78c14831697041",
      "parents": [
        "1e657bd51f313d87fbbb22d1edf625dba87ef353"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 03 10:24:16 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 15 20:44:27 2010 -0500"
      },
      "message": "Revert \"NFSv4: Fall back to ordinary lookup if nfs4_atomic_open() returns EISDIR\"\n\nThis reverts commit 80e60639f1b7c121a7fea53920c5a4b94009361a.\n\nThis change requires further fixes to ensure that the open doesn\u0027t\nsucceed if the lookup later results in a regular file being created.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1e657bd51f313d87fbbb22d1edf625dba87ef353",
      "tree": "e693b41296e5da158971ae7df9d73dc6e69cd4be",
      "parents": [
        "8e35f8e7c61c88f9a979a4e6f7f4ffd4c158a88a"
      ],
      "author": {
        "name": "Paulius Zaleckas",
        "email": "paulius.zaleckas@gmail.com",
        "time": "Sun Oct 31 18:21:05 2010 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 15 20:44:27 2010 -0500"
      },
      "message": "Regression: fix mounting NFS when NFSv3 support is not compiled\n\nTrying to mount NFS (root partition in my case) fails if CONFIG_NFS_V3\nis not selected. nfs_validate_mount_data() returns EPROTONOSUPPORT,\nbecause of this check:\n\n#ifndef CONFIG_NFS_V3\n\tif (args-\u003eversion \u003d\u003d 3)\n\t\tgoto out_v3_not_compiled;\n#endif /* !CONFIG_NFS_V3 */\n\nand args-\u003eversion was always initialized to 3.\n\nIt was working in 2.6.36\n\nSigned-off-by: Paulius Zaleckas \u003cpaulius.zaleckas@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51ee4b84f5c86935b438d6636f34b523edb415a8",
      "tree": "c60e0da8f8b6393477d79ef6d6ce321ee3b8ecaa",
      "parents": [
        "96f935934591b72f5b05fd6923bc8cdcae92f2e5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:10 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: let the caller free file_lock on -\u003esetlease failure\n\nThe caller allocated it, the caller should free it.\n\nThe only issue so far is that we could change the flp pointer even on an\nerror return if the fl_change callback failed.  But we can simply move\nthe flp assignment after the fl_change invocation, as the callers don\u0027t\ncare about the flp return value if the setlease call failed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fa3135fdc7b9b510b502a35b6b97d2b38c6f48",
      "tree": "d533e8112111202ae890b2061c0386669002d080",
      "parents": [
        "096657b65e1ac197e20be5ce7cff6b6ca2532787"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:15 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "locks: fix setlease methods to free passed-in lock\n\nWe modified setlease to require the caller to allocate the new lease in\nthe case of creating a new lease, but forgot to fix up the filesystem\nmethods.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31f43471e97eff7801251e2c3c8fc03219f85d87",
      "tree": "036a7c76926c6f4aaed7f872f64717f4de27b147",
      "parents": [
        "061dbc6b9010bc1a30ef9a1da5469aefa83abd7f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 03:38:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:23 2010 -0400"
      },
      "message": "convert simple cases of nfs-related -\u003eget_sb() to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a4118ee1d80b527c385cadd14db79559efb8a493",
      "tree": "0402b0585fd9e50f54f87f06e467cad44f992efc",
      "parents": [
        "18cb657ca1bafe635f368346a1676fb04c512edf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 27 11:00:08 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:14:48 2010 -0400"
      },
      "message": "a couple of open-coded ihold() introduced by nfs merge\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "12364a4f05295cb1e4a161d36b486c248c11c485",
      "tree": "4c005a806101a84b4154c3deeb96952e8b7fce1a",
      "parents": [
        "8f0d97b41523fb85a2d230f6794121e5834f0cf9"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Thu Oct 28 20:06:19 2010 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 28 15:49:29 2010 -0400"
      },
      "message": "nfs4: The difference of 2 pointers is ptrdiff_t\n\nOn m68k, which is 32-bit:\n\nfs/nfs/nfs4proc.c: In function ‘nfs41_sequence_done’:\nfs/nfs/nfs4proc.c:432: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘int’\nfs/nfs/nfs4proc.c: In function ‘nfs4_setup_sequence’:\nfs/nfs/nfs4proc.c:576: warning: format ‘%ld’ expects type ‘long int’, but argument 5 has type ‘int’\n\nOn 32-bit, ptrdiff_t is int; on 64-bit, ptrdiff_t is long.\n\nIntroduced by commit dfb4f309830359352539919f23accc59a20a3758 (\"NFSv4.1: keep\nseq_res.sr_slot as pointer rather than an index\")\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8f0d97b41523fb85a2d230f6794121e5834f0cf9",
      "tree": "8ed8b6320e8c8fa288f94f1b31f3a6e7ed0385bb",
      "parents": [
        "015f0212d51d85bd281a831639a769b4a1a3307a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Oct 28 08:05:57 2010 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 28 11:18:00 2010 -0400"
      },
      "message": "nfs: testing the wrong variable\n\nThe intent was to test \"*desc\" for allocation failures, but it tests\n\"desc\" which is always a valid pointer here.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "015f0212d51d85bd281a831639a769b4a1a3307a",
      "tree": "e873e64419d0a5e1000de1ce8f91e28f0ec5ac41",
      "parents": [
        "568a810d7edd58bd505222dd1c7e48895532290b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Oct 28 10:10:37 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 28 11:17:25 2010 -0400"
      },
      "message": "nfs: handle lock context allocation failures in nfs_create_request\n\nnfs_get_lock_context can return NULL on an allocation failure.\nRegression introduced by commit f11ac8db.\n\nReported-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: stable@kernel.org\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": "7420a8c0de8d99b201aeeab6fed16ca95ebf55a5",
      "tree": "0787800f490f98ffd41b958e52ab15732335744e",
      "parents": [
        "12ba8d1e9262ce81a695795410bd9ee5c9407ba1",
        "72f98e72551fad573c6cace8e8551ef094f482dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:13:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:13:34 2010 -0700"
      },
      "message": "Merge branch \u0027flock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027flock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  locks: turn lock_flocks into a spinlock\n  fasync: re-organize fasync entry insertion to allow it under a spinlock\n  locks/nfsd: allocate file lock outside of spinlock\n  lockd: fix nlmsvc_notify_blocked locking\n  lockd: push lock_flocks down\n"
    },
    {
      "commit": "763641d81202834e9d64de2019d1edec12868f4f",
      "tree": "cabbf932e3f6676bfbce6be27744795700011bfb",
      "parents": [
        "f9ba5375a8aae4aeea6be15df77e24707a429812"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 26 22:55:40 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 21:39:39 2010 +0200"
      },
      "message": "lockd: push lock_flocks down\n\nlockd should use lock_flocks() instead of lock_kernel()\nto lock against posix locks accessing the i_flock list.\n\nThis is a prerequisite to turning lock_flocks into a\nspinlock.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "426e1f5cec4821945642230218876b0e89aafab1",
      "tree": "2728ace018d0698886989da586210ef1543a7098",
      "parents": [
        "9e5fca251f44832cb996961048ea977f80faf6ea",
        "63997e98a3be68d7cec806d22bf9b02b2e1daabb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)\n  split invalidate_inodes()\n  fs: skip I_FREEING inodes in writeback_sb_inodes\n  fs: fold invalidate_list into invalidate_inodes\n  fs: do not drop inode_lock in dispose_list\n  fs: inode split IO and LRU lists\n  fs: switch bdev inode bdi\u0027s correctly\n  fs: fix buffer invalidation in invalidate_list\n  fsnotify: use dget_parent\n  smbfs: use dget_parent\n  exportfs: use dget_parent\n  fs: use RCU read side protection in d_validate\n  fs: clean up dentry lru modification\n  fs: split __shrink_dcache_sb\n  fs: improve DCACHE_REFERENCED usage\n  fs: use percpu counter for nr_dentry and nr_dentry_unused\n  fs: simplify __d_free\n  fs: take dcache_lock inside __d_path\n  fs: do not assign default i_ino in new_inode\n  fs: introduce a per-cpu last_ino allocator\n  new helper: ihold()\n  ...\n"
    },
    {
      "commit": "18a043f9413277523cf5011e594caa1747db4948",
      "tree": "f5d7e908bf62e67184f91ce83b6b7624755826ac",
      "parents": [
        "31453a9764f7e2a72a6e2c502ace586e2663a68c",
        "eb1c86b8b501ad9a073d9d519105979d31fa0ef2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:24:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:24:28 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: rename nfs.upcall -\u003e nfs.idmap\n  NFS: Fix a compile issue in nfs_root\n"
    },
    {
      "commit": "1b430beee5e388605dfb092b214ef0320f752cf6",
      "tree": "c1b1ece282aab771fd1386a3fe0c6e82cb5c5bfe",
      "parents": [
        "d19d5476f4b9f91d2de92b91588bb118beba6c0d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Oct 26 14:21:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "writeback: remove nonblocking/encountered_congestion references\n\nThis removes more dead code that was somehow missed by commit 0d99519efef\n(writeback: remove unused nonblocking and congestion checks).  There are\nno behavior change except for the removal of two entries from one of the\next4 tracing interface.\n\nThe nonblocking checks in -\u003ewritepages are no longer used because the\nflusher now prefer to block on get_request_wait() than to skip inodes on\nIO congestion.  The latter will lead to more seeky IO.\n\nThe nonblocking checks in -\u003ewritepage are no longer used because it\u0027s\nredundant with the WB_SYNC_NONE check.\n\nWe no long set -\u003enonblocking in VM page out and page migration, because\na) it\u0027s effectively redundant with WB_SYNC_NONE in current code\nb) it\u0027s old semantic of \"Don\u0027t get stuck on request queues\" is mis-behavior:\n   that would skip some dirty inodes on congestion and page out others, which\n   is unfair in terms of LRU age.\n\nInspired by Christoph Hellwig. Thanks!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "036a1075978e35811f22be3ff86a70cb8d22cb85",
      "tree": "5042cb277cef56ece773f6f091c953d857a64417",
      "parents": [
        "411b5e05617593efebc06241dbc56f42150f2abe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 26 13:47:04 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 26 13:56:42 2010 -0400"
      },
      "message": "NFS: Fix a compile issue in nfs_root\n\nStephen Rothwell reports:\n\n\u003e /home/test/linux-2.6/fs/nfs/nfsroot.c: In function \u0027nfs_root_debug\u0027:\n\u003e /home/test/linux-2.6/fs/nfs/nfsroot.c:110:2: error: \u0027nfs_debug\u0027\n\u003e undeclared (first use in this function)\n\u003e /home/test/linux-2.6/fs/nfs/nfsroot.c:110:2: note: each undeclared\n\u003e identifier is reported only once for each function it appears in\n\u003e make[3]: *** [fs/nfs/nfsroot.o] Error 1\n\u003e make[2]: *** [fs/nfs] Error 2\n\u003e make[1]: *** [fs] Error 2\n\u003e make: *** [sub-make] Error 2\n\nWhich is caused by commit 306a075362a288683f6346185f97dd0e06df19da\n(NFS: Allow NFSROOT debugging messages to be enabled dynamically)\n\nFix is to disable this code when RPC_DEBUG is disabled.\n\nReported-by: Zimny Lech \u003cnapohybelskurwysynom2010@gmail.com\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4390110fef9e5c64e10c6ca19d586932242c9a8a",
      "tree": "f2f26fe291c8b4e424b97ac57370b33e0c006568",
      "parents": [
        "a4dd8dce14014665862ce7911b38cb2c69e366dd",
        "42d7ba3d6d56a6cbc773284896108b1e2ebcee81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux: (99 commits)\n  svcrpc: svc_tcp_sendto XPT_DEAD check is redundant\n  svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue\n  svcrpc: assume svc_delete_xprt() called only once\n  svcrpc: never clear XPT_BUSY on dead xprt\n  nfsd4: fix connection allocation in sequence()\n  nfsd4: only require krb5 principal for NFSv4.0 callbacks\n  nfsd4: move minorversion to client\n  nfsd4: delay session removal till free_client\n  nfsd4: separate callback change and callback probe\n  nfsd4: callback program number is per-session\n  nfsd4: track backchannel connections\n  nfsd4: confirm only on succesful create_session\n  nfsd4: make backchannel sequence number per-session\n  nfsd4: use client pointer to backchannel session\n  nfsd4: move callback setup into session init code\n  nfsd4: don\u0027t cache seq_misordered replies\n  SUNRPC: Properly initialize sock_xprt.srcaddr in all cases\n  SUNRPC: Use conventional switch statement when reclassifying sockets\n  sunrpc/xprtrdma: clean up workqueue usage\n  sunrpc: Turn list_for_each-s into the ..._entry-s\n  ...\n\nFix up trivial conflicts (two different deprecation notices added in\nseparate branches) in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "a4dd8dce14014665862ce7911b38cb2c69e366dd",
      "tree": "00e79b2845d5d49abcd83cf253db83a52d482265",
      "parents": [
        "b18cae4224bde7e5a332c19bc99247b2098ea232",
        "411b5e05617593efebc06241dbc56f42150f2abe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  net/sunrpc: Use static const char arrays\n  nfs4: fix channel attribute sanity-checks\n  NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n  NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n  NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n  NFS: client needs to maintain list of inodes with active layouts\n  NFS: create and destroy inode\u0027s layout cache\n  NFSv4.1: pnfs: filelayout: introduce minimal file layout driver\n  NFSv4.1: pnfs: full mount/umount infrastructure\n  NFS: set layout driver\n  NFS: ask for layouttypes during v4 fsinfo call\n  NFS: change stateid to be a union\n  NFSv4.1: pnfsd, pnfs: protocol level pnfs constants\n  SUNRPC: define xdr_decode_opaque_fixed\n  NFSD: remove duplicate NFS4_STATEID_SIZE\n"
    },
    {
      "commit": "43c2e885be25311e6289c7da52e8a03c4453ee03",
      "tree": "68b32eda7198486a8fe720bb5ed91189a769d817",
      "parents": [
        "1c787096fce217b5fdd9806dbce96e738c9345c0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 02 15:19:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 25 22:19:41 2010 -0400"
      },
      "message": "nfs4: fix channel attribute sanity-checks\n\nThe sanity checks here are incorrect; in the worst case they allow\nvalues that crash the client.\n\nThey\u0027re also over-reliant on the preprocessor.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f",
      "tree": "88787e77ba8a253d0a26aeda4bd5e58532d592e0",
      "parents": [
        "646ec4615cd05972581c9c5342ed7a1e77df17bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 11:11:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "new helper: ihold()\n\nClones an existing reference to inode; caller must already hold one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "74eb94b218d087798a52c0b4f1379b635287a4b8",
      "tree": "4e467c3014c2b1169f6f71d88cf5d1598f3ce28e",
      "parents": [
        "7b6181e06841f5ad15c4ff708b967b4db65a64de",
        "9a84d38031c258a17bb39beed1e500eadee67407"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (67 commits)\n  SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred\n  nfs: fix unchecked value\n  Ask for time_delta during fsinfo probe\n  Revalidate caches on lock\n  SUNRPC: After calling xprt_release(), we must restart from call_reserve\n  NFSv4: Fix up the \u0027dircount\u0027 hint in encode_readdir\n  NFSv4: Clean up nfs4_decode_dirent\n  NFSv4: nfs4_decode_dirent must clear entry-\u003efattr-\u003evalid\n  NFSv4: Fix a regression in decode_getfattr\n  NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer\n  NFS: Ensure we check all allocation return values in new readdir code\n  NFS: Readdir plus in v4\n  NFS: introduce generic decode_getattr function\n  NFS: check xdr_decode for errors\n  NFS: nfs_readdir_filler catch all errors\n  NFS: readdir with vmapped pages\n  NFS: remove page size checking code\n  NFS: decode_dirent should use an xdr_stream\n  SUNRPC: Add a helper function xdr_inline_peek\n  NFS: remove readdir plus limit\n  ...\n"
    },
    {
      "commit": "1c787096fce217b5fdd9806dbce96e738c9345c0",
      "tree": "c3ee4071ef4729951c50f22a82e2088a8ab1c7de",
      "parents": [
        "16b374ca439fb406e46e071f75428f5b033056f8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 21 16:56:48 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:11 2010 -0400"
      },
      "message": "NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n\nThe initialize_mountpoint/uninitialise_mountpoint functions are really about\nsetting or clearing the layout driver to be used on this filesystem. Change\nthe names to the more descriptive \u0027set_layoutdriver/clear_layoutdriver\u0027.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16b374ca439fb406e46e071f75428f5b033056f8",
      "tree": "72a66e452936561151b8b62069763cb4f0434b39",
      "parents": [
        "b1f69b754ee312ec75f2c7ead0e6851cd9598cc2"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:18:04 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:11 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n\nImplement the driver\u0027s io_ops-\u003ealloc_lseg and free_lseg functions,\nwhich integrate into the deviceid cache and calls out to\nnfs4_proc_getdeviceinfo when necessary.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Oleg Drokin \u003cgreen@linuxhacker.ru\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b1f69b754ee312ec75f2c7ead0e6851cd9598cc2",
      "tree": "1d8e70abb2cd087e3b97f73d86db8b9568467378",
      "parents": [
        "974cec8ca0352eb5d281535b714cf194a606e98f"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:18:03 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n\nAdd the ability to actually send LAYOUTGET and GETDEVICEINFO.  This also adds\nin the machinery to handle layout state and the deviceid cache.  Note that\nGETDEVICEINFO is not called directly by the generic layer.  Instead it\nis called by the drivers while parsing the LAYOUTGET opaque data in response\nto an unknown device id embedded therein.  RFC 5661 only encodes\ndevice ids within the driver-specific opaque data.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "974cec8ca0352eb5d281535b714cf194a606e98f",
      "tree": "0e71706c3091fc785bab0be8edc5de36816685ff",
      "parents": [
        "e5e940170b2136ad4d5483ef293ae284b9cc8d53"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:18:02 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: client needs to maintain list of inodes with active layouts\n\nIn particular, server reboot will invalidate all layouts.\n\nNote that in order to have an active layout, we must get a successful response\nfrom the server.  To avoid adding that machinery, this patch just includes a\nstub that fakes up a successful return.  Since the layout is never referenced\nfor io, this is not a problem.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e5e940170b2136ad4d5483ef293ae284b9cc8d53",
      "tree": "1568bf55addee6a6fdc091026083426b087e68df",
      "parents": [
        "7ab672ce312133ee4a5d85b71447b2b334403681"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Oct 20 00:18:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: create and destroy inode\u0027s layout cache\n\nAt the start of the io paths, try to grab the relevant layout\ninformation.  This will initiate the inode\u0027s layout cache, but\nstubs ensure the cache stays empty.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7ab672ce312133ee4a5d85b71447b2b334403681",
      "tree": "de35b863e3d1762ca89c6e330246134abc7f5f4e",
      "parents": [
        "02c35fca7cf4ea2dfdc6db279e230cacbbf4b870"
      ],
      "author": {
        "name": "Dean Hildebrand",
        "email": "dhildebz@umich.edu",
        "time": "Wed Oct 20 00:18:00 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: filelayout: introduce minimal file layout driver\n\nThis driver just registers itself and supplies trivial mount/umount functions.\n\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "02c35fca7cf4ea2dfdc6db279e230cacbbf4b870",
      "tree": "7449a8a3fb119d862f6c163c05cf43d58443c377",
      "parents": [
        "85e174ba6b786ad336eb2df105b4f66d0932e70a"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Wed Oct 20 00:17:59 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: full mount/umount infrastructure\n\nAllow a module implementing a layout type to register, and\nhave its mount/umount routines called for filesystems that\nthe server declares support it.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Bian Naimeng \u003cbiannm@cn.fujitsu.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "85e174ba6b786ad336eb2df105b4f66d0932e70a",
      "tree": "eec6b01d897e85c47471f4166201676001c9fd21",
      "parents": [
        "504913fbc84c00bba7224d73e4aab525c1731f7d"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Oct 20 00:17:58 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFS: set layout driver\n\nPut in the infrastructure that uses information returned from the\nserver at mount to select a layout driver module.\n\nIn this patch, a stub is used that always returns \"no driver found\".\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildebz@umich.edu\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "504913fbc84c00bba7224d73e4aab525c1731f7d",
      "tree": "714cbd975b3786486a93df5aa8cca27dc626033f",
      "parents": [
        "9449925273933d19235d7d36c1fd970841d055de"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Oct 20 00:17:57 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:09 2010 -0400"
      },
      "message": "NFS: ask for layouttypes during v4 fsinfo call\n\nThis information will be used to determine which layout driver,\nif any, to use for subsequent IO on this filesystem.  Each driver\nis assigned an integer id, with 0 reserved to indicate no driver.\n\nThe server can in theory return multiple ids.  However, our current\nclient implementation only notes the first entry and ignores the\nrest.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9449925273933d19235d7d36c1fd970841d055de",
      "tree": "849b6ef6684e17effa3401fdae698b1af5111050",
      "parents": [
        "c772567d97fa0fca454eea68aeae915ca1bc732b"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Wed Oct 20 00:17:56 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:02:53 2010 -0400"
      },
      "message": "NFS: change stateid to be a union\n\nIn NFSv4.1 the stateid consists of the other and seqid fields. For layout\nprocessing we need to numerically compare the seqid value of layout stateids.\nTo do so, introduce a union to nfs4_stateid to switch between opaque(16 bytes)\nand opaque(12 bytes) / __be32\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3388bff5cfe91589a912cdc7f00d3aae3aa18adc",
      "tree": "d84d4642c70787d44c16dc842e263744dae729e9",
      "parents": [
        "55b6e7742d5b25182edf410369379b9727b2e5bc"
      ],
      "author": {
        "name": "Roman Borisov",
        "email": "ext-roman.borisov@nokia.com",
        "time": "Wed Oct 13 16:54:51 2010 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:00:12 2010 -0400"
      },
      "message": "nfs: fix unchecked value\n\nReturn value of \"decode_attr_bitmap()\" was not checked;\n\nSigned-off-by: Roman Borisov \u003cext-roman.borisov@nokia.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "55b6e7742d5b25182edf410369379b9727b2e5bc",
      "tree": "7dbe87bdf772c4ec1896a8620c97b536cbcf73c6",
      "parents": [
        "6b96724e507fecc3e6440e86426fe4f44359ed66"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Tue Oct 12 16:30:06 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:00:04 2010 -0400"
      },
      "message": "Ask for time_delta during fsinfo probe\n\nUsed by the client to determine if the server has a granular enough\ntime stamp.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b96724e507fecc3e6440e86426fe4f44359ed66",
      "tree": "5b38131405301f4dd536a11f44ff0d5e6785d266",
      "parents": [
        "118df3d17f11733b294ea2cd988d56ee376ef9fd"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Tue Oct 12 16:30:05 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 17:59:56 2010 -0400"
      },
      "message": "Revalidate caches on lock\n\nInstead of blindly zapping the caches, attempt to revalidate them if\nthe server has indicated that it uses high resolution timestamps.\n\nNFSv4 should be able to always revalidate the cache since the\nprotocol requires the update of the change attribute on modification of\nthe data.  In reality, there are servers (the Linux NFS server\nfor example) that do not obey this requirement and use ctime as the\nbasis for change attribute.  Long term, the server needs to be fixed.\nAt this time, and to be on the safe side, continue zapping caches if\nthe server indicates that it does not have a high resolution timestamp.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f7a35bd23bdbbb40c07ee1120ef047190e77d9b",
      "tree": "27b8aea3b8bf8bf813eedd59808f18da8b3e0a24",
      "parents": [
        "9af8c222ca5eae88f000664f693316480bf58fbc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 12:11:42 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 13:20:25 2010 -0400"
      },
      "message": "NFSv4: Fix up the \u0027dircount\u0027 hint in encode_readdir\n\nAlso ensure we only ask for either fileid or mounted_on_fileid in the\nreaddirplus case too...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9af8c222ca5eae88f000664f693316480bf58fbc",
      "tree": "4b5f49ab95cd07884ef1b51cda671a18c3dd4a3d",
      "parents": [
        "4f082222fad3c8471abe0c8e8f18c72f335a34c7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 11:52:55 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 13:18:04 2010 -0400"
      },
      "message": "NFSv4: Clean up nfs4_decode_dirent\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4f082222fad3c8471abe0c8e8f18c72f335a34c7",
      "tree": "b5c5eea011910f7b08991cb3779cc0eae9ae2598",
      "parents": [
        "3201f3dd7370f2d29dfb689ae16f8f5d4066cc33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 13:14:02 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 13:14:02 2010 -0400"
      },
      "message": "NFSv4: nfs4_decode_dirent must clear entry-\u003efattr-\u003evalid\n\nOtherwise, we may end up reading uninitialised data from the resulting\nstruct nfs_fattr.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3201f3dd7370f2d29dfb689ae16f8f5d4066cc33",
      "tree": "345fecf8fe25d069af5a7484028f23b5efcdf58b",
      "parents": [
        "7ad07353003d6ff69fe0b987813bb77b4d5ac23d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:43:10 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:43:10 2010 -0400"
      },
      "message": "NFSv4: Fix a regression in decode_getfattr\n\nWe don\u0027t want to have the mounted_on_fileid overwrite the true fileid. We\nonly return the former if the server didn\u0027t supply the true fileid.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7ad07353003d6ff69fe0b987813bb77b4d5ac23d",
      "tree": "580d0284b6946454d9136b3568e69eb3524be8ed",
      "parents": [
        "4a201d6e3f4253f918555cc7c27c418f8ac1bb65"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:34:20 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:34:20 2010 -0400"
      },
      "message": "NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer\n\ndecode_attr_filehandle still needs to skip the XDR-encoded filehandle if\nsomeone passes a null pointer argument.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4a201d6e3f4253f918555cc7c27c418f8ac1bb65",
      "tree": "9424a999b43f8c4d397f513a32258a64f3bed61a",
      "parents": [
        "82f2e5472e2304e531c2fa85e457f4a71070044e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 14:53:23 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:38 2010 -0400"
      },
      "message": "NFS: Ensure we check all allocation return values in new readdir code\n\nAlso some clean ups.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "82f2e5472e2304e531c2fa85e457f4a71070044e",
      "tree": "45e170b0ec64bcc07e51ae36919ca6cba1163703",
      "parents": [
        "ae42c70a60fe330d9c2af7c4b92ce78484308e37"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Oct 21 16:33:18 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:37 2010 -0400"
      },
      "message": "NFS: Readdir plus in v4\n\nBy requsting more attributes during a readdir, we can mimic the readdir plus\noperation that was in NFSv3.\n\nTo test, I ran the command `ls -lU --color\u003dnone` on directories with various\nnumbers of files.  Without readdir plus, I see this:\n\nn files |    100    |   1,000   |  10,000   |  100,000  | 1,000,000\n--------+-----------+-----------+-----------+-----------+----------\nreal    | 0m00.153s | 0m00.589s | 0m05.601s | 0m56.691s | 9m59.128s\nuser    | 0m00.007s | 0m00.007s | 0m00.077s | 0m00.703s | 0m06.800s\nsys     | 0m00.010s | 0m00.070s | 0m00.633s | 0m06.423s | 1m10.005s\naccess  | 3         | 1         | 1         | 4         | 31\ngetattr | 2         | 1         | 1         | 1         | 1\nlookup  | 104       | 1,003     | 10,003    | 100,003   | 1,000,003\nreaddir | 2         | 16        | 158       | 1,575     | 15,749\ntotal   | 111       | 1,021     | 10,163    | 101,583   | 1,015,784\n\nWith readdir plus enabled, I see this:\n\nn files |    100    |   1,000   |  10,000   |  100,000  | 1,000,000\n--------+-----------+-----------+-----------+-----------+----------\nreal    | 0m00.115s | 0m00.206s | 0m01.079s | 0m12.521s | 2m07.528s\nuser    | 0m00.003s | 0m00.003s | 0m00.040s | 0m00.290s | 0m03.296s\nsys     | 0m00.007s | 0m00.020s | 0m00.120s | 0m01.357s | 0m17.556s\naccess  | 3         | 1         | 1         | 1         | 7\ngetattr | 2         | 1         | 1         | 1         | 1\nlookup  | 4         | 3         | 3         | 3         | 3\nreaddir | 6         | 62        | 630       | 6,300     | 62,993\ntotal   | 15        | 67        | 635       | 6,305     | 63,004\n\nReaddir plus disabled has about a 16x increase in the number of rpc calls and\nis 4 - 5 times slower on large directories.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ae42c70a60fe330d9c2af7c4b92ce78484308e37",
      "tree": "a70a200f3d031240e32e69d87375b021004e9817",
      "parents": [
        "9942438089d5c0e3adecdcb7bc360b8fe0ce7e62"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Oct 21 16:33:17 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:37 2010 -0400"
      },
      "message": "NFS: introduce generic decode_getattr function\n\nGetattr should be able to decode errors and the readdir file handle.\ndecode_getfattr_attrs does the actual attribute decoding, while\ndecode_getfattr_generic will check the opcode before decoding.  This will\nlet other functions call decode_getfattr_attrs to decode their attributes.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9942438089d5c0e3adecdcb7bc360b8fe0ce7e62",
      "tree": "6c6fa331811f6c8e5217193276602bd353613061",
      "parents": [
        "3c8a1aeed8fd7f89bd0400fad72cbc1ac3460217"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Oct 21 16:33:16 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:36 2010 -0400"
      },
      "message": "NFS: check xdr_decode for errors\n\nCheck if the decoded entry has the eof bit set when returning from xdr_decode\nwith an error.  If it does, we should set the eof bits in the array before\nreturning.  This should keep us from looping when we expect more data but the\nserver doesn\u0027t give us anything new.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3c8a1aeed8fd7f89bd0400fad72cbc1ac3460217",
      "tree": "7483a41703dafcbc8526c112e3e625c3a881fc99",
      "parents": [
        "56e4ebf877b6043c289bda32a5a7385b80c17dee"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Oct 21 16:33:16 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:35 2010 -0400"
      },
      "message": "NFS: nfs_readdir_filler catch all errors\n\nCheck for all errors, not a specific one.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "56e4ebf877b6043c289bda32a5a7385b80c17dee",
      "tree": "160ae8d5b5ee3871d02a9f5283187430c9ec5ffe",
      "parents": [
        "afa8ccc978c24d8ab22e3b3b8cbd1054c84c070b"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Oct 20 15:44:37 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:35 2010 -0400"
      },
      "message": "NFS: readdir with vmapped pages\n\nWe can use vmapped pages to read more information from the network at once.\nThis will reduce the number of calls needed to complete a readdir.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n[trondmy: Added #include for linux/vmalloc.h\u003e in fs/nfs/dir.c]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "afa8ccc978c24d8ab22e3b3b8cbd1054c84c070b",
      "tree": "77a05498dd1decb19f296f0e9f60da0916a40bbd",
      "parents": [
        "babddc72a9468884ce1a23db3c3d54b0afa299f0"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Oct 20 15:44:31 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:34 2010 -0400"
      },
      "message": "NFS: remove page size checking code\n\nRemove the page size checking code for a readdir decode.  This is now done\nby decode_dirent with xdr_streams.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "babddc72a9468884ce1a23db3c3d54b0afa299f0",
      "tree": "b176e5795b47c73c47543acdc546da0c38619ddc",
      "parents": [
        "ba8e452a4fe64a51b74d43761e14d99f0666cc45"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Oct 20 15:44:29 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:33 2010 -0400"
      },
      "message": "NFS: decode_dirent should use an xdr_stream\n\nConvert nfs*xdr.c to use an xdr stream in decode_dirent.  This will prevent a\nkernel oops that has been occuring when reading a vmapped page.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0715dc632a271fc0fedf3ef4779fe28ac1e53ef4",
      "tree": "bbbb9fa7e47f478810ab0724fc687ec374978df1",
      "parents": [
        "d39ab9de3b80da5835049b1c3b49da4e84e01c07"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Sep 24 18:50:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:32 2010 -0400"
      },
      "message": "NFS: remove readdir plus limit\n\nWe will now use readdir plus even on directories that are very large.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d39ab9de3b80da5835049b1c3b49da4e84e01c07",
      "tree": "8ffd7947d927f94bc467fd509c64d563b6f0110d",
      "parents": [
        "baf57a09e9d87b14be5e2788828169394a2525ab"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Sep 24 18:50:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:31 2010 -0400"
      },
      "message": "NFS: re-add readdir plus\n\nThis patch adds readdir plus support to the cache array.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "baf57a09e9d87b14be5e2788828169394a2525ab",
      "tree": "77b35fe3ef7868f3c642093a4a8c01ed6be584cd",
      "parents": [
        "d1bacf9eb2fd0e7ef870acf84b9e3b157dcfa7dc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 24 18:49:43 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:30 2010 -0400"
      },
      "message": "NFS: Optimise the readdir searches\n\nIf we\u0027re going through the loop in nfs_readdir() more than once, we usually\ndo not want to restart searching from the beginning of the pages cache.\n\nWe only want to do that if the previous search failed...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d1bacf9eb2fd0e7ef870acf84b9e3b157dcfa7dc",
      "tree": "8b6746ade07c71f0d40c29b76dbe65e999c038f7",
      "parents": [
        "8c7597f6ce212bbc8ca05090e21820ffe9792b3d"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Fri Sep 24 14:48:42 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:30 2010 -0400"
      },
      "message": "NFS: add readdir cache array\n\nThis patch adds the readdir cache array and functions to retreive the array\nstored on a cache page, clear the array by freeing allocated memory, add an\nentry to the array, and search the array for a given cookie.\n\nIt then modifies readdir to make use of the new cache array.\nWith the new cache array method, we no longer need some of this code.\n\nFinally, nfs_llseek_dir() will set file-\u003ef_pos to a value greater than 0 and\ndesc-\u003edir_cookie to zero.  When we see this, readdir needs to find the file\nat position file-\u003ef_pos from the start of the directory.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8c7597f6ce212bbc8ca05090e21820ffe9792b3d",
      "tree": "6db49b2e84fdee1ff3904755b06e16149f2f2c0a",
      "parents": [
        "168667c43bbafff11b46014a1e94477ff7619f45"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Oct 22 16:18:52 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:29 2010 -0400"
      },
      "message": "nfs: include ratelimit.h, fix nfs4state build error\n\nnfs4state.c uses interfaces from ratelimit.h.  It needs to include\nthat header file to fix build errors:\n\nfs/nfs/nfs4state.c:1195: warning: type defaults to \u0027int\u0027 in declaration of \u0027DEFINE_RATELIMIT_STATE\u0027\nfs/nfs/nfs4state.c:1195: warning: parameter names (without types) in function declaration\nfs/nfs/nfs4state.c:1195: error: invalid storage class for function \u0027DEFINE_RATELIMIT_STATE\u0027\nfs/nfs/nfs4state.c:1195: error: implicit declaration of function \u0027__ratelimit\u0027\nfs/nfs/nfs4state.c:1195: error: \u0027_rs\u0027 undeclared (first use in this function)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc:\tTrond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc:\tlinux-nfs@vger.kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "168667c43bbafff11b46014a1e94477ff7619f45",
      "tree": "903bf11fe3b53fe0e7db6ab38d2bdc8933576879",
      "parents": [
        "898f635c4297e91ceac675d83c4a460f26118342"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 19 19:47:49 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:28 2010 -0400"
      },
      "message": "NFSv4: The state manager must ignore EKEYEXPIRED.\n\nOtherwise, we cannot recover state correctly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "898f635c4297e91ceac675d83c4a460f26118342",
      "tree": "1e6e1d3fb179fffa8f78a094a0db1e31e841ad19",
      "parents": [
        "6eaa61496fb3b93cceface7a296415fc4c030bce"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 11:24:25 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Oct 23 15:27:17 2010 -0400"
      },
      "message": "NFSv4: Don\u0027t ignore the error return codes from nfs_intent_set_file\n\nIf nfs_intent_set_file() returns an error, we usually want to pass that\nback up the stack.\n\nAlso ensure that nfs_open_revalidate() returns \u00271\u0027 on success.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
      "tree": "3bb53b7806c1baba6cc24b91724a9264cceccd39",
      "parents": [
        "c37927d4359e81b85de644f8fb08878717cf5f3f",
        "6d7bccc2215c37205ede6c9cf84db64e7c4f9443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "message": "Merge branch \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits)\n  BKL: remove BKL from freevxfs\n  BKL: remove BKL from qnx4\n  autofs4: Only declare function when CONFIG_COMPAT is defined\n  autofs: Only declare function when CONFIG_COMPAT is defined\n  ncpfs: Lock socket in ncpfs while setting its callbacks\n  fs/locks.c: prepare for BKL removal\n  BKL: Remove BKL from ncpfs\n  BKL: Remove BKL from OCFS2\n  BKL: Remove BKL from squashfs\n  BKL: Remove BKL from jffs2\n  BKL: Remove BKL from ecryptfs\n  BKL: Remove BKL from afs\n  BKL: Remove BKL from USB gadgetfs\n  BKL: Remove BKL from autofs4\n  BKL: Remove BKL from isofs\n  BKL: Remove BKL from fat\n  BKL: Remove BKL from ext2 filesystem\n  BKL: Remove BKL from do_new_mount()\n  BKL: Remove BKL from cgroup\n  BKL: Remove BKL from NTFS\n  ...\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "6de5bd128d381ad88ac6d419a5e597048eb468cf",
      "tree": "7b3a0440f645c6e98367a87b1ca0ed1e0df204dd",
      "parents": [
        "7ff52efdca367d4bfe2449bd3d4a1f8172c5953a"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 11 18:00:57 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Oct 21 15:44:13 2010 +0200"
      },
      "message": "BKL: introduce CONFIG_BKL.\n\nWith all the patches we have queued in the BKL removal tree, only a\nfew dozen modules are left that actually rely on the BKL, and even\nthere are lots of low-hanging fruit. We need to decide what to do\nabout them, this patch illustrates one of the options:\n\nEvery user of the BKL is marked as \u0027depends on BKL\u0027 in Kconfig,\nand the CONFIG_BKL becomes a user-visible option. If it gets\ndisabled, no BKL using module can be built any more and the BKL\ncode itself is compiled out.\n\nThe one exception is file locking, which is practically always\nenabled and does a \u0027select BKL\u0027 instead. This effectively forces\nCONFIG_BKL to be enabled until we have solved the fs/lockd\nmess and can apply the patch that removes the BKL from fs/locks.c.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "6eaa61496fb3b93cceface7a296415fc4c030bce",
      "tree": "88093c8ca07058b940a871d92fd1074968098dbe",
      "parents": [
        "ae1007d37e00144b72906a4bdc47d517ae91bcc1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 04 17:59:08 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 19 19:42:53 2010 -0400"
      },
      "message": "NFSv4: Don\u0027t call nfs4_reclaim_complete() on receiving NFS4ERR_STALE_CLIENTID\n\nIf the server sends us an NFS4ERR_STALE_CLIENTID while the state management\nthread is busy reclaiming state, we do want to treat all state that wasn\u0027t\nreclaimed before the STALE_CLIENTID as if a network partition occurred (see\nthe edge conditions described in RFC3530 and RFC5661).\nWhat we do not want to do is to send an nfs4_reclaim_complete(), since we\nhaven\u0027t yet even started reclaiming state after the server rebooted.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "ae1007d37e00144b72906a4bdc47d517ae91bcc1",
      "tree": "170a123bd99aefbb086bef9ab75a576ea5df346a",
      "parents": [
        "b0ed9dbc24f1fd912b2dd08b995153cafc1d5b1c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 04 17:59:08 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 19 19:42:33 2010 -0400"
      },
      "message": "NFSv4: Don\u0027t call nfs4_state_mark_reclaim_reboot() from error handlers\n\nIn the case of a server reboot, the state recovery thread starts by calling\nnfs4_state_end_reclaim_reboot() in order to avoid edge conditions when\nthe server reboots while the client is in the middle of recovery.\n\nHowever, if the client has already marked the nfs4_state as requiring\nreboot recovery, then the above behaviour will cause the recovery thread to\ntreat the open as if it was part of such an edge condition: the open will\nbe recovered as if it was part of a lease expiration (and all the locks\nwill be lost).\nFix is to remove the call to nfs4_state_mark_reclaim_reboot from\nnfs4_async_handle_error(), and nfs4_handle_exception(). Instead we leave it\nto the recovery thread to do this for us.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b0ed9dbc24f1fd912b2dd08b995153cafc1d5b1c",
      "tree": "bb86bfd7dabdab7b3df4f24e12b7f90bc045b201",
      "parents": [
        "bc4866b6e0b44f8ea0df22a16e5927714beb4983"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 04 17:59:08 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 19 19:41:55 2010 -0400"
      },
      "message": "NFSv4: Fix open recovery\n\nNFSv4 open recovery is currently broken: since we do not clear the\nstate-\u003eflags states before attempting recovery, we end up with the\n\u0027can_open_cached()\u0027 function triggering. This again leads to no OPEN call\nbeing put on the wire.\n\nReported-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "bc4866b6e0b44f8ea0df22a16e5927714beb4983",
      "tree": "be5249600ca096b2ea4cf0ad6d8eea73cdeed966",
      "parents": [
        "955a857e062642cd3ebe1dc7bb38c0f85d8f8f17"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 04 17:59:08 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 19 19:37:54 2010 -0400"
      },
      "message": "NFS: Don\u0027t SIGBUS if nfs_vm_page_mkwrite races with a cache invalidation\n\nIn the case where we lock the page, and then find out that the page has\nbeen thrown out of the page cache, we should just return VM_FAULT_NOPAGE.\nThis is what block_page_mkwrite() does in these situations.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "955a857e062642cd3ebe1dc7bb38c0f85d8f8f17",
      "tree": "f95fc349c245c4a0a3f6f8fcc5bf02f36a756134",
      "parents": [
        "aa510da5bfe1dfe263215fd0e05dac96e738a782"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Sep 29 15:41:49 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 07 18:48:49 2010 -0400"
      },
      "message": "NFS: new idmapper\n\nThis patch creates a new idmapper system that uses the request-key function to\nplace a call into userspace to map user and group ids to names.  The old\nidmapper was single threaded, which prevented more than one request from running\nat a single time.  This means that a user would have to wait for an upcall to\nfinish before accessing a cached result.\n\nThe upcall result is stored on a keyring of type id_resolver.  See the file\nDocumentation/filesystems/nfs/idmapper.txt for instructions.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n[Trond: fix up the return value of nfs_idmap_lookup_name and clean up code]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b89f432133851a01c0d28822f11cbdcc15781a75",
      "tree": "a3e9ba638a9b746985148f4525335d360ec7da56",
      "parents": [
        "2e54eb96e2c801f33d95b5dade15212ac4d6c4a5"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 18 15:09:31 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 05 11:02:04 2010 +0200"
      },
      "message": "fs/locks.c: prepare for BKL removal\n\nThis prepares the removal of the big kernel lock from the\nfile locking code. We still use the BKL as long as fs/lockd\nuses it and ceph might sleep, but we can flip the definition\nto a private spinlock as soon as that\u0027s done.\nAll users outside of fs/lockd get converted to use\nlock_flocks() instead of lock_kernel() where appropriate.\n\nBased on an earlier patch to use a spinlock from Matthew\nWilcox, who has attempted this a few times before, the\nearliest patch from over 10 years ago turned it into\na semaphore, which ended up being slower than the BKL\nand was subsequently reverted.\n\nSomeone should do some serious performance testing when\nthis becomes a spinlock, since this has caused problems\nbefore. Using a spinlock should be at least as good\nas the BKL in theory, but who knows...\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-fsdevel@vger.kernel.org\n"
    },
    {
      "commit": "c653ce3f0aee9bb2b221ebf3579385c06f81efcd",
      "tree": "d0f5a8018e2cf959b6bc1549ce75602ed179dca9",
      "parents": [
        "62832c039eab9d03cd28a66427ce8276988f28b0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:04:45 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:56 2010 -0400"
      },
      "message": "sunrpc: Add net to rpc_create_args\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "fc5d00b04a3a58cac8620403dfe9f43f72578ec1",
      "tree": "3a8b9a5ae3456b5846fb64c0a74c9389998b3e18",
      "parents": [
        "e204e621b4160c802315bc2d0fa335337c0d62e8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:03:50 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:54 2010 -0400"
      },
      "message": "sunrpc: Add net argument to svc_create_xprt\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "aa510da5bfe1dfe263215fd0e05dac96e738a782",
      "tree": "23653cea38532e688f593e36295c312158558a79",
      "parents": [
        "a00dd6c03dd97a777c291a8af8682be4b5fadf8d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 29 15:11:56 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 29 15:16:25 2010 -0400"
      },
      "message": "NFS: We must use list_for_each_entry_safe in nfs_access_cache_shrinker\n\nWe may end up removing the current entry from nfs_access_lru_list.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a00dd6c03dd97a777c291a8af8682be4b5fadf8d",
      "tree": "184600accd17f16115becb5f3454f18e88987643",
      "parents": [
        "5c78f58e2d5cef65c255a556184f1f43c8d84c84"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Sep 28 09:14:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 29 14:42:30 2010 -0400"
      },
      "message": "NFS: don\u0027t use FLUSH_SYNC on WB_SYNC_NONE COMMIT calls (try #2)\n\nWB_SYNC_NONE is supposed to mean \"don\u0027t wait on anything\". That should\nalso include not waiting for COMMIT calls to complete.\n\nWB_SYNC_NONE is also implied when wbc-\u003enonblocking and\nwbc-\u003efor_background are set, so we can replace those checks in\nnfs_commit_unstable_pages with a check for WB_SYNC_NONE.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "5c78f58e2d5cef65c255a556184f1f43c8d84c84"
}
