)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "876ba85927068a86af31af2bf8007328887d7400",
      "old_mode": 33188,
      "old_path": "fs/nfs/client.c",
      "new_id": "da2f2f024a4de72ec9b20e8a0fdb0498d5916615",
      "new_mode": 33188,
      "new_path": "fs/nfs/client.c"
    },
    {
      "type": "modify",
      "old_id": "0cbb714a09d8da13bb010765241158ccca3e42e8",
      "old_mode": 33188,
      "old_path": "fs/nfs/dir.c",
      "new_id": "2a768d05a53456258abe23f541ac4defc7a901dd",
      "new_mode": 33188,
      "new_path": "fs/nfs/dir.c"
    },
    {
      "type": "modify",
      "old_id": "7b0e894d00c8b7139c1a2a1cef2ffbe72bbcd843",
      "old_mode": 33188,
      "old_path": "fs/nfs/internal.h",
      "new_id": "db08ff3ff454d840baf84ea8b7ce8e5583c6cdf9",
      "new_mode": 33188,
      "new_path": "fs/nfs/internal.h"
    },
    {
      "type": "modify",
      "old_id": "82f026422424826358acca78bb7685894f673ea1",
      "old_mode": 33188,
      "old_path": "fs/nfs/nfs2xdr.c",
      "new_id": "e6bf45710cc7fcd0348459ed7a27cc9454ee7e88",
      "new_mode": 33188,
      "new_path": "fs/nfs/nfs2xdr.c"
    },
    {
      "type": "modify",
      "old_id": "dc98eb7976c3f1cb9b5df3f5275b5f643623451e",
      "old_mode": 33188,
      "old_path": "fs/nfs/nfs3xdr.c",
      "new_id": "31a44df40aeacc5f56967874e4c5f3b620099827",
      "new_mode": 33188,
      "new_path": "fs/nfs/nfs3xdr.c"
    },
    {
      "type": "modify",
      "old_id": "c58ea63775065f0615d520d85506d0b7c4911554",
      "old_mode": 33188,
      "old_path": "fs/nfs/nfs4_fs.h",
      "new_id": "9fa496387fdfec9a61aa45213c2a99b93982b30b",
      "new_mode": 33188,
      "new_path": "fs/nfs/nfs4_fs.h"
    },
    {
      "type": "modify",
      "old_id": "cb33c73206e3194e1f8835cf921ba3ddd8fbdc82",
      "old_mode": 33188,
      "old_path": "fs/nfs/nfs4proc.c",
      "new_id": "f5ab216e8870b671a6e452cb1ca68b8c8be75cc6",
      "new_mode": 33188,
      "new_path": "fs/nfs/nfs4proc.c"
    },
    {
      "type": "modify",
      "old_id": "b7eff205d3d813c5b02c303f1a29d5e5ca0f7634",
      "old_mode": 33188,
      "old_path": "fs/nfs/nfs4xdr.c",
      "new_id": "ccfb1c92b2624e53016f5486e637efc9ff7b4e67",
      "new_mode": 33188,
      "new_path": "fs/nfs/nfs4xdr.c"
    },
    {
      "type": "modify",
      "old_id": "1b9a17a1f235ce5c24fb975ba5a128f20d796e92",
      "old_mode": 33188,
      "old_path": "include/linux/nfs_xdr.h",
      "new_id": "efe2eab8ac945a14ecc0b14be47e8e4eb1c048c2",
      "new_mode": 33188,
      "new_path": "include/linux/nfs_xdr.h"
    }
  ]
}
