)]}'
{
  "log": [
    {
      "commit": "266bee88699ddbde42ab303bbc426a105cc49809",
      "tree": "2d2b57f869321e177caf173af8d43b5d88c4a79d",
      "parents": [
        "e7374e48009a15a680d53bd1f9828b9b79a8aac9"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue Jun 27 12:59:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 14:07:19 2006 -0700"
      },
      "message": "[PATCH] fix static linking of NFS\n\nBuilds on ARM report link problems with common configurations like\nstatically linked NFS (for nfsroot).  The symptom is that __init\nsection code references __exit section code; that won\u0027t work since\nthe exit sections are discarded (since they can never be called).\n\nThe best fix for these particular cases would be an \"__init_or_exit\"\nsection annotation.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f36f44de721db44b4c2944133c3c5c2e06f633f0",
      "tree": "47549ea4017b29532b633df4765da5b7c9feda6f",
      "parents": [
        "a5d157e0675ac11188a8d429a062b1938bb2d353"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 12:30:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 12:30:33 2006 -0700"
      },
      "message": "Fix NFS2 compile error\n\nTrond had apparently merged the same patch twice, causing a duplicate\ninclude of the \"internal.h\" file, with resulting obvious confusion.\n\nTssk.  I\u0027m the only one allowed to send out trees that don\u0027t even\ncompile! Who does this Trond guy think he is?\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9bf2aa129a107a0e9e2a5318d35aca731ae7e666",
      "tree": "a639597d29b316cc2d24ce5e3982ca7fc21bded4",
      "parents": [
        "6ab86aa13045e7f6742af0b3c3c45f952f9fbb8d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Jun 25 02:41:28 2006 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:39:35 2006 -0400"
      },
      "message": "nfs: remove nfs_put_link()\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6ab86aa13045e7f6742af0b3c3c45f952f9fbb8d",
      "tree": "d301f1faaa3e62459edde714cb0c3d4a67a4f8cf",
      "parents": [
        "d75d54147db9db5194040bd1c5022df6ba36ee48"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jun 25 02:41:27 2006 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:38:47 2006 -0400"
      },
      "message": "nfs-build-fix-99\n\nfs/built-in.o:(__param+0x20): undefined reference to `nfs_idmap_cache_timeout\u0027\nfs/built-in.o:(__param+0x48): undefined reference to `nfs_callback_set_tcpport\u0027\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nCc: Andy Adamson \u003candros@citi.umich.edu\u003e\nCc: Chuck Lever \u003ccel@netapp.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d75d54147db9db5194040bd1c5022df6ba36ee48",
      "tree": "4bb7c7db88edd31b57958850aa16bc8ea297e017",
      "parents": [
        "ccf01ef7aa9c6c293a1c64c27331a2ce227916ec"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jun 25 02:41:26 2006 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:38:11 2006 -0400"
      },
      "message": "git-nfs-build-fixes\n\nFix various problems with nfs4 disabled.  And various other things.\n\nIn file included from fs/nfs/inode.c:50:\nfs/nfs/internal.h:24: error: static declaration of \u0027nfs_do_refmount\u0027 follows non-static declaration\ninclude/linux/nfs_fs.h:320: error: previous declaration of \u0027nfs_do_refmount\u0027 was here\nfs/nfs/internal.h:65: warning: \u0027struct nfs4_fs_locations\u0027 declared inside parameter list\nfs/nfs/internal.h:65: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/nfs/internal.h: In function \u0027nfs4_path\u0027:\nfs/nfs/internal.h:97: error: \u0027struct nfs_server\u0027 has no member named \u0027mnt_path\u0027\nfs/nfs/inode.c: In function \u0027init_once\u0027:\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027open_states\u0027\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027delegation\u0027\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027delegation_state\u0027\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027rwsem\u0027\ndistcc[26452] ERROR: compile fs/nfs/inode.c on g5/64 failed\nmake[1]: *** [fs/nfs/inode.o] Error 1\nmake: *** [fs/nfs/inode.o] Error 2\nmake: *** Waiting for unfinished jobs....\nIn file included from fs/nfs/nfs3xdr.c:26:\nfs/nfs/internal.h:24: error: static declaration of \u0027nfs_do_refmount\u0027 follows non-static declaration\ninclude/linux/nfs_fs.h:320: error: previous declaration of \u0027nfs_do_refmount\u0027 was here\nfs/nfs/internal.h:65: warning: \u0027struct nfs4_fs_locations\u0027 declared inside parameter list\nfs/nfs/internal.h:65: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/nfs/internal.h: In function \u0027nfs4_path\u0027:\nfs/nfs/internal.h:97: error: \u0027struct nfs_server\u0027 has no member named \u0027mnt_path\u0027\ndistcc[26486] ERROR: compile fs/nfs/nfs3xdr.c on g5/64 failed\nmake[1]: *** [fs/nfs/nfs3xdr.o] Error 1\nmake: *** [fs/nfs/nfs3xdr.o] Error 2\nIn file included from fs/nfs/nfs3proc.c:24:\nfs/nfs/internal.h:24: error: static declaration of \u0027nfs_do_refmount\u0027 follows non-static declaration\ninclude/linux/nfs_fs.h:320: error: previous declaration of \u0027nfs_do_refmount\u0027 was here\nfs/nfs/internal.h:65: warning: \u0027struct nfs4_fs_locations\u0027 declared inside parameter list\nfs/nfs/internal.h:65: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/nfs/internal.h: In function \u0027nfs4_path\u0027:\nfs/nfs/internal.h:97: error: \u0027struct nfs_server\u0027 has no member named \u0027mnt_path\u0027\ndistcc[26469] ERROR: compile fs/nfs/nfs3proc.c on bix/32 failed\nmake[1]: *** [fs/nfs/nfs3proc.o] Error 1\nmake: *** [fs/nfs/nfs3proc.o] Error 2\n**FAILED**\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nCc: Andy Adamson \u003candros@citi.umich.edu\u003e\nCc: Chuck Lever \u003ccel@netapp.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ccf01ef7aa9c6c293a1c64c27331a2ce227916ec",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "82b145c5a572f7fa7211dffe2097234dc91bcecc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:27:31 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:27:31 2006 -0400"
      },
      "message": "Merge branch \u0027odirect\u0027\n"
    },
    {
      "commit": "82b145c5a572f7fa7211dffe2097234dc91bcecc",
      "tree": "35689aa653d29f17681f13d89d592c88e7c112e5",
      "parents": [
        "06cf6f2ed0b19629700794727d86ed57b9c0583e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:57:03 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: alloc nfs_read/write_data as direct I/O is scheduled\n\nRe-arrange the logic in the NFS direct I/O path so that nfs_read/write_data\nstructs are allocated just before they are scheduled, rather than\nallocating them all at once before we start scheduling requests.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "06cf6f2ed0b19629700794727d86ed57b9c0583e",
      "tree": "20630465974dc9391af486d8609aae077701b596",
      "parents": [
        "9c93ab7dff5eb22027ab15010557bb73f9b44c99"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:56:49 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: Eliminate nfs_get_user_pages()\n\nNeil Brown observed that the kmalloc() in nfs_get_user_pages() is more\nlikely to fail if the I/O is large enough to require the allocation of more\nthan a single page to keep track of all the pinned pages in the user\u0027s\nbuffer.\n\nInstead of tracking one large page array per dreq/iocb, track pages per\nnfs_read/write_data, just like the cached I/O path does.  An array for\npages is already allocated for us by nfs_readdata_alloc() (and the write\nand commit equivalents).\n\nThis is also required for adding support for vectored I/O to the NFS direct\nI/O path.\n\nThe original reason to pin the user buffer and allocate all the NFS data\nstructures before trying to schedule I/O was to ensure all needed resources\nare allocated on the client before starting to send requests.  This reduces\nthe chance that resource exhaustion on the client will cause a short read\nor write.\n\nOn the other hand, for an application making very large application I/O\nrequests, this means that it will be nearly impossible for the application\nto make forward progress on a resource-limited client.\n\nThus, moving the buffer pinning functionality into the I/O scheduling\nloops should be good for scalability.  The next patch will do the same for\nNFS data structure allocation.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9c93ab7dff5eb22027ab15010557bb73f9b44c99",
      "tree": "654a010c2aa161d0f9f49d7137410aaca1ebd2ba",
      "parents": [
        "51a7bc6caec94bab256b272bffd24d00ea81c698"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:56:31 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: refactor nfs_direct_free_user_pages\n\nClean-up and fix a minor bug: the logic was dirtying page cache pages on\nboth read and write operations.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51a7bc6caec94bab256b272bffd24d00ea81c698",
      "tree": "29e19b93449e6affb53a737b73ddec847e21cc50",
      "parents": [
        "fedb595c66e1fbd5acafe0d43b7e95c13c936d61"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:56:16 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:39 2006 -0400"
      },
      "message": "NFS: remove user_addr, user_count, and pos from nfs_direct_req\n\nMake the user_addr, user_count, and pos parameters explicit to the\nscheduler routines, and remove the fields from nfs_direct_req.  The\niovec API will be passing in a series of these, not just one set.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fedb595c66e1fbd5acafe0d43b7e95c13c936d61",
      "tree": "e865ecc2399c09b7164c2f2c13a2c5c10c8d4de1",
      "parents": [
        "b1c5921c5b715c207d7fe77cd7aaafbb322f09f5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:55:45 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:38 2006 -0400"
      },
      "message": "NFS: \"open code\" the NFS direct write rescheduler\n\nAn NFSv3/v4 client must reschedule on-the-wire writes if the writes are\nUNSTABLE, and the server reboots before the client can complete a\nsubsequent COMMIT request.\n\nTo support direct asynchronous scatter-gather writes, the write\nrescheduler in fs/nfs/direct.c must not depend on the I/O parameters\nin the controlling nfs_direct_req structure.  iovecs can be somewhat\narbitrarily complex, so there could be an unbounded amount of information\nto save for a rarely encountered requirement.\n\nRefactor the direct write rescheduler so it uses information from each\nnfs_write_data structure to reschedule writes, instead of caching that\ninformation in the controlling nfs_direct_req structure.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b1c5921c5b715c207d7fe77cd7aaafbb322f09f5",
      "tree": "c8a56c56740efa728b7d3b935b6cb09330a4817f",
      "parents": [
        "816724e65c72a90a44fbad0ef0b59b186c85fa90"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jun 20 12:55:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:11:38 2006 -0400"
      },
      "message": "NFS: Separate functions for counting outstanding NFS direct I/Os\n\nFactor out the logic that increments and decrements the outstanding I/O\ncount.  This will be a commonly used bit of code in upcoming patches.\nAlso make this an atomic_t again, since it will be very often manipulated\noutside dreq-\u003espin lock.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "816724e65c72a90a44fbad0ef0b59b186c85fa90",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "70ac4385a13f78bc478f26d317511893741b05bd",
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 08:41:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:07:53 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tfs/nfs/inode.c\n\tfs/super.c\n\nFix conflicts between patch \u0027NFS: Split fs/nfs/inode.c\u0027 and patch\n\u0027VFS: Permit filesystem to override root dentry on mount\u0027\n"
    },
    {
      "commit": "75e1fcc0b18df0a65ab113198e9dc0e98999a08c",
      "tree": "3ac0d0d3120cbca4ee9734494e2c9a4e0775ac4f",
      "parents": [
        "ff7b86b82083f24b8637dff1528c7101c18c7f39"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] vfs: add lock owner argument to flush operation\n\nPass the POSIX lock owner ID to the flush operation.\n\nThis is useful for filesystems which don\u0027t want to store any locking state\nin inode-\u003ei_flock but want to handle locking/unlocking POSIX locks\ninternally.  FUSE is one such filesystem but I think it possible that some\nnetwork filesystems would need this also.\n\nAlso add a flag to indicate that a POSIX locking request was generated by\nclose(), so filesystems using the above feature won\u0027t send an extra locking\nrequest in this case.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "726c334223180e3c0197cc980a432681370d4baf",
      "tree": "8327b354bb3dc959a6606051ae6f8d4d035e38a2",
      "parents": [
        "454e2398be9b9fa30433fccc548db34d19aa9958"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to perform statfs with a known root dentry\n\nGive the statfs superblock operation a dentry pointer rather than a superblock\npointer.\n\nThis complements the get_sb() patch.  That reduced the significance of\nsb-\u003es_root, allowing NFS to place a fake root there.  However, NFS does\nrequire a dentry to use as a target for the statfs operation.  This permits\nthe root in the vfsmount to be used instead.\n\nlinux/mount.h has been added where necessary to make allyesconfig build\nsuccessfully.\n\nInterest has also been expressed for use with the FUSE and XFS filesystems.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "81039f1f204a0fd2952112a240284e114f1a25e6",
      "tree": "511625e9ea5361dc240ef0540aff7e5cde1551cb",
      "parents": [
        "f7b422b17ee5ee4920e8ae24a6ad04bf3481ce72"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:34 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:34 2006 -0400"
      },
      "message": "NFS: Display the chosen RPCSEC_GSS security flavour in /proc/mounts\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f7b422b17ee5ee4920e8ae24a6ad04bf3481ce72",
      "tree": "4ae8372762efc092ceb4f884b57cad1efe6594de",
      "parents": [
        "4e5ccf60c5aa79d325c123f47d288a068166f389"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "message": "NFS: Split fs/nfs/inode.c\n\nAs fs/nfs/inode.c is rather large, heterogenous and unwieldy, the attached\npatch splits it up into a number of files:\n\n (*) fs/nfs/inode.c\n\n     Strictly inode specific functions.\n\n (*) fs/nfs/super.c\n\n     Superblock management functions for NFS and NFS4, normal access, clones\n     and referrals.  The NFS4 superblock functions _could_ move out into a\n     separate conditionally compiled file, but it\u0027s probably not worth it as\n     there\u0027re so many common bits.\n\n (*) fs/nfs/namespace.c\n\n     Some namespace-specific functions have been moved here.\n\n (*) fs/nfs/nfs4namespace.c\n\n     NFS4-specific namespace functions (this could be merged into the previous\n     file).  This file is conditionally compiled.\n\n (*) fs/nfs/internal.h\n\n     Inter-file declarations, plus a few simple utility functions moved from\n     fs/nfs/inode.c.\n\n     Additionally, all the in-.c-file externs have been moved here, and those\n     files they were moved from now includes this file.\n\nFor the most part, the functions have not been changed, only some multiplexor\nfunctions have changed significantly.\n\nI\u0027ve also:\n\n (*) Added some extra banner comments above some functions.\n\n (*) Rearranged the function order within the files to be more logical and\n     better grouped (IMO), though someone may prefer a different order.\n\n (*) Reduced the number of #ifdefs in .c files.\n\n (*) Added missing __init and __exit directives.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4e5ccf60c5aa79d325c123f47d288a068166f389",
      "tree": "acc16e1c85eb4348f4faf5288463f236d61e0fcc",
      "parents": [
        "860de07139980afe9856cc31eb5efbf321bbcea4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:32 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:32 2006 -0400"
      },
      "message": "NFS: Fix typo in nfs_do_clone_mount()\n\nDoh!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "860de07139980afe9856cc31eb5efbf321bbcea4",
      "tree": "e32a6c758b299f62978426c7e263f6f554678731",
      "parents": [
        "87e4ba1a62af8e05ee3e8f8aaca622714386ffb0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:31 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:31 2006 -0400"
      },
      "message": "NFS: Fix compile errors introduced by referrals patches\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "87e4ba1a62af8e05ee3e8f8aaca622714386ffb0",
      "tree": "f37f00e2c5cc5904f57395f800e8e6544eb062d9",
      "parents": [
        "33a43f2802d8d7be3a9b541785c4ca9ad79e4310"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:30 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:30 2006 -0400"
      },
      "message": "NFSv4: Ensure that referral mounts bind to a reserved port\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "33a43f2802d8d7be3a9b541785c4ca9ad79e4310",
      "tree": "dd55121ea9031401fce8b03554654a332a4c38df",
      "parents": [
        "6b97fd3da1eab2cc490cfe884c7d4956522eaf8b"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Fri Jun 09 09:34:30 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:30 2006 -0400"
      },
      "message": "NFSv4: A root pathname is sent as a zero component4\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b97fd3da1eab2cc490cfe884c7d4956522eaf8b",
      "tree": "055f5f603101a15f783ae52081e4714ddc3edc96",
      "parents": [
        "9cdb3883c38f883436a84c2353a4cf964ff890a2"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:29 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:29 2006 -0400"
      },
      "message": "NFSv4: Follow a referral\n\nRespond to a moved error on NFS lookup by setting up the referral.\nNote: We don\u0027t actually follow the referral during lookup/getattr, but\nlater when we detect fsid mismatch in inode revalidation (similar to the\nprocessing done for cloning submounts). Referrals will have fake attributes\nuntil they are actually followed or traversed.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9cdb3883c38f883436a84c2353a4cf964ff890a2",
      "tree": "7961aebf94c66d7d55bb6e7c715e99d28ad3ab9d",
      "parents": [
        "61f5164cab1f6fdf06871ea9d60fe2f912184078"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:28 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:28 2006 -0400"
      },
      "message": "NFSv4: Ensure client submounts when following a referral\n\nSet up mountpoint when hitting a referral on moved error by getting\nfs_locations.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "61f5164cab1f6fdf06871ea9d60fe2f912184078",
      "tree": "966e8279f9563ceda4b919f309832c3336642abb",
      "parents": [
        "c818ba43f9ca2e8214412ab5f126b1f436c35098"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:27 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:27 2006 -0400"
      },
      "message": "NFS: Expand clone mounts to include other servers\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c818ba43f9ca2e8214412ab5f126b1f436c35098",
      "tree": "02e3646c172000c8bc71d6de52d4991bbeb3db14",
      "parents": [
        "830b8e33fe1900b87c8eb7ec5c646117a9f298d6"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:26 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:26 2006 -0400"
      },
      "message": "NFSv4: Create NFSv4 transport and client\n\nMove existing code into a separate function so that it can be also used by\nreferral code.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "830b8e33fe1900b87c8eb7ec5c646117a9f298d6",
      "tree": "8e4aa4c7ecd0485a288254433edf76305852c846",
      "parents": [
        "361e624f6d8bfbeac53769603d995d47535cfd46"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:25 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:25 2006 -0400"
      },
      "message": "NFSv4: Define an fs_locations bitmap\n\nThis is (similar to getattr bitmap) but includes fs_locations and\nmounted_on_fileid attributes. Use this bitmap for encoding in fs_locations\nrequests.\nNote: We can probably do better by requesting locations as part of fsinfo\nitself.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "361e624f6d8bfbeac53769603d995d47535cfd46",
      "tree": "9cf400058ff4c4960a4e573b3753baff41cb5cf0",
      "parents": [
        "99baf625d3b9b8944920acc7c2d06079a37458c5"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:24 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:24 2006 -0400"
      },
      "message": "NFSv4: GETATTR attributes on referral\n\nPer referral draft, only fs_locations, fsid, and mounted_on_fileid can be\nrequested in a GETATTR on referrals.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99baf625d3b9b8944920acc7c2d06079a37458c5",
      "tree": "2878013e4a44562502fe18ce4ecff0cd0dcaf4ec",
      "parents": [
        "7aaa0b3bd4d215d9ce4d62b6c2043a63ba650f93"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:24 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:24 2006 -0400"
      },
      "message": "NFSv4: Decode mounted_on_fileid attribute in getattr.\n\nIt is ignored if fileid is also requested. This will be used on referrals\n(fs_locations).\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7aaa0b3bd4d215d9ce4d62b6c2043a63ba650f93",
      "tree": "122b502bc56a00dcb60d2de211e5ea6eeac9e028",
      "parents": [
        "683b57b435326eb512c7305892683b6205669448"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:23 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:23 2006 -0400"
      },
      "message": "NFSv4: convert fs-locations-components to conform to RFC3530\n\nUse component4-style formats for decoding list of servers and pathnames in\nfs_locations.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "683b57b435326eb512c7305892683b6205669448",
      "tree": "ca1e526ab5b27993c0c143c37bb31e18889eeb61",
      "parents": [
        "8b23ea7bedb8b45a5bb56745fa3ff11018acf04e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:22 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:22 2006 -0400"
      },
      "message": "NFSv4: Implement the fs_locations function call\n\nNFSv4 allows for the fact that filesystems may be replicated across\nseveral servers or that they may be migrated to a backup server in case of\nfailure of the primary server.\nfs_locations is an NFSv4 operation for retrieving information about the\nlocation of migrated and/or replicated filesystems.\n\nBased on an initial implementation by Jiaying Zhang \u003cjiayingz@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51d8fa6a109589d522c18a8e9bf3fb167a91b1bc",
      "tree": "a9ec5e642bfa64f7cf1fde01617b30bac385bac6",
      "parents": [
        "55a975937d40cac582e981ddc8ed783b3dcc043c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:20 2006 -0400"
      },
      "message": "NFS: Add timeout to submounts\n\nMake automounted partitions expire using the mark_mounts_for_expiry()\nfunction. The timeout is controlled via a sysctl.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "55a975937d40cac582e981ddc8ed783b3dcc043c",
      "tree": "13507eaebdab5e9c9dd615fe373ec6c0ddcbade4",
      "parents": [
        "8b4bdcf8995dd92b23d2ec22b32aee8fbbb50e1c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "message": "NFS: Ensure the client submounts, when it crosses a server mountpoint.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b4bdcf8995dd92b23d2ec22b32aee8fbbb50e1c",
      "tree": "8ebe9ec2ed5cb58592097123cf6b34af997316c7",
      "parents": [
        "8b512d9a88875affe584bb3d2a7a235f84343b9e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "message": "NFS: Store the file system \"fsid\" value in the NFS super block.\n\nThis should enable us to detect if we are crossing a mountpoint in the\ncase where the server is exporting \"nohide\" mounts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b512d9a88875affe584bb3d2a7a235f84343b9e",
      "tree": "80c46a675aeffaedd8d18e2bb6361768f4f4845a",
      "parents": [
        "5528f911b4c43a5de5da34bcbd7e3f2a62503617"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "message": "VFS: Remove dependency of -\u003eumount_begin() call on MNT_FORCE\n\nAllow filesystems to decide to perform pre-umount processing whether or not\nMNT_FORCE is set.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "da6d503aa0a75ec44f17d985a2b500077e7f6a74",
      "tree": "863dbb7c8a2bdda8b2ef3e462722c867ce6e6c46",
      "parents": [
        "d2ccddf042c403b146159beea438c6bfc4a445e2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 01 17:26:35 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:14 2006 -0400"
      },
      "message": "NFS: Remove nfs_delete_inode()\n\nNow that we have a real nfs_invalidate_page() to ensure that\ntruncate_inode_pages() does the right thing when there are pending dirty\npages, we can get rid of nfs_delete_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d2ccddf042c403b146159beea438c6bfc4a445e2",
      "tree": "e38f5faeccb73cacd442e899328ae44b75f15559",
      "parents": [
        "c04871e6345e4c6dfda564e302d7fd8c66420fd5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 31 01:13:38 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:14 2006 -0400"
      },
      "message": "NFS: Flesh out nfs_invalidate_page()\n\nIn the case of a call to truncate_inode_pages(), we should really try to\ncancel any pending writes on the page.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c04871e6345e4c6dfda564e302d7fd8c66420fd5",
      "tree": "4b2a2b0fb5f282ffd5c95f64691476c647acd29f",
      "parents": [
        "3873bc50e2271504da45799257f69222774d9550"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue May 30 16:28:58 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:13 2006 -0400"
      },
      "message": "NFSv4: remove obviously bogus comparison from decode_getacl\n\nWe just set *acl_len to zero, and attrlen is unsigned, so this comparison\nis clearly bogus.  I have no idea what I was thinking.\n\nFixes a bug that caused getacl to fail over krb5p.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3873bc50e2271504da45799257f69222774d9550",
      "tree": "0a79d0364b896b469db2ef520048fe380727e25f",
      "parents": [
        "4814f56d19137b3b9fa8e00e1d332b3683b950de"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat May 27 03:31:12 2006 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:12 2006 -0400"
      },
      "message": "NFSv4: really return status from decode_recall_args()\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4814f56d19137b3b9fa8e00e1d332b3683b950de",
      "tree": "41575affcd777e41d1ade756867697cd27bfc2ec",
      "parents": [
        "1842bfb447cea8b344fd91af97fb6d604ecb11fa"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Thu May 25 01:41:03 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:11 2006 -0400"
      },
      "message": "NFSv3: Client-side nfsacl caching fix\n\nFix two errors in the client-side acl cache: First, when nfs3_proc_getacl\nrequests only the default acl of a file and the access acl is not cached\nalready, a NULL access acl entry is cached instead of ERR_PTR(-EAGAIN)\n(\"not cached\").\n\nSecond, update the cached acls in nfs3_proc_setacls: nfs_refresh_inode does\nnot always invalidate the cached acls, and when it does not, the cached acls\nget out of sync.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1842bfb447cea8b344fd91af97fb6d604ecb11fa",
      "tree": "8f3fb5f9fac687ccee3b98e3f0a513816fe35b36",
      "parents": [
        "44b11874ff583b6e766a05856b04f3c492c32b84"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:41:01 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:10 2006 -0400"
      },
      "message": "NFS: Fix up inode revalidation accounting\n\nCurrently, we are accounting for all calls to nfs_revalidate_inode(), but not\nto nfs_revalidate_mapping(), or nfs_lookup_verify_inode(), etc...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44b11874ff583b6e766a05856b04f3c492c32b84",
      "tree": "b17effcaf70ed67f61b1ec2ed2dea1ea2f884d60",
      "parents": [
        "38478b24e37587f1c4fedf8ac070ca54f052ed28"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:59 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:09 2006 -0400"
      },
      "message": "NFS: Separate metadata and page cache revalidation mechanisms\n\nSeparate out the function of revalidating the inode metadata, and\nrevalidating the mapping. The former may be called by lookup(),\nand only really needs to check that permissions, ctime, etc haven\u0027t changed\nwhereas the latter needs only done when we want to read data from the page\ncache, and may need to sync and then invalidate the mapping.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "38478b24e37587f1c4fedf8ac070ca54f052ed28",
      "tree": "da4d900a8bfe27f1243fb0e037b51fae2a7e3256",
      "parents": [
        "f1bb0b92ba2cdfffe6e437f7a7da53138cf08d52"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:57 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:09 2006 -0400"
      },
      "message": "NFS: More page cache revalidation fixups\n\nWhenever the directory changes, we want to make sure that we always\ninvalidate its page cache. Fix up update_changeattr() and\nnfs_mark_for_revalidate() so that they do so.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f1bb0b92ba2cdfffe6e437f7a7da53138cf08d52",
      "tree": "2870bd8f3e08b3b1b387f31713d965c3fcb7863f",
      "parents": [
        "0d0b5cb36faf7002a11736032313f06d6f3d881c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:55 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:08 2006 -0400"
      },
      "message": "NFS: Fix page cache revalidation\n\nFix up a bug in the handling of NFS_INO_REVAL_PAGECACHE: make sure that\nnfs_update_inode() clears it when we\u0027re sure we\u0027re not racing with other\nupdates.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0d0b5cb36faf7002a11736032313f06d6f3d881c",
      "tree": "d767ae12fde00b553546aab9f5aa3e23cd86069d",
      "parents": [
        "bf3fcf89552f24657bcfb6a9d73cd167ebb496c6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu May 25 01:40:53 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:07 2006 -0400"
      },
      "message": "NFS: Optimize allocation of nfs_read/write_data structures\n\nClean up use of page_array, and fix an off-by-one error noticed by Tom\nTalpey which causes kmalloc calls in cases where using the page_array\nis sufficient.\n\nTest plan:\nNormal client functional testing with r/wsize\u003d32768.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "73a3d07c1082145a3b78407bb5252df290470c4c",
      "tree": "58ae6256401e19750f2d5f916c1ca5636a14905b",
      "parents": [
        "9d1e9232223a7f065be7f956a7b749a4cbbbe16d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:47 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:04 2006 -0400"
      },
      "message": "NFS: Clean up inode metadata updates\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9d1e9232223a7f065be7f956a7b749a4cbbbe16d",
      "tree": "cf535655bda226c5d306fffdb40bc22fbeb5aedb",
      "parents": [
        "1de3fc12ea085690547a54b6efa01c7348f1cebd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:46 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:04 2006 -0400"
      },
      "message": "NFSv4: Some NFSv4 servers have broken behaviour for the change attribute\n\nThe Linux NFSv4 server violates RFC3530 in that the change attribute is not\nguaranteed to be updated for every change to the inode. Our optimisation\nfor checking whether or not the inode metadata has changed or not is broken\ntoo. Grr....\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1de3fc12ea085690547a54b6efa01c7348f1cebd",
      "tree": "ea865786120cfcefac563c54693fef8d3d718f10",
      "parents": [
        "128e6ced247cda88f96fa9f2e4ba8b2c4a681560"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:44 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:03 2006 -0400"
      },
      "message": "NFS: Clean up and fix page zeroing when we have short reads\n\nThe code that is supposed to zero the uninitialised partial pages when the\nserver returns a short read is currently broken: it looks at the nfs_page\nwb_pgbase and wb_bytes fields instead of the equivalent nfs_read_data\nvalues when deciding where to start truncating the page.\n\nAlso ensure that we are more careful about setting PG_uptodate\nbefore retrying a short read: the retry will change the nfs_read_data\nargs.pgbase and args.count.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7451c4f0ee53e36fd74168af8df75b28fd04a2aa",
      "tree": "d981de4189c559d8e0a9f291c9919dde396c9a04",
      "parents": [
        "b9d9506d944865876e67281a4e4269d823ce5381"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Apr 19 13:06:37 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 13:06:37 2006 -0400"
      },
      "message": "NFS: remove needless check in nfs_opendir()\n\nLocal variable res was initialized to 0 - no check needed here.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b9d9506d944865876e67281a4e4269d823ce5381",
      "tree": "344e12dab9854855fad1388e2aaecbf33eb566c1",
      "parents": [
        "ec535ce154f2eaad3d97f2f20a76a6d8bdac33e5"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Wed Apr 19 13:06:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 13:06:20 2006 -0400"
      },
      "message": "NFS: nfs_show_stats; for_each_possible_cpu(), not NR_CPUS\n\nConvert a for-loop that explicitly references \"NR_CPUS\" into the\npotentially more efficient for_each_possible_cpu() construct.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e99170ff3b799a9fd43d538932a9231fac1de9d4",
      "tree": "b5926023a010c4f8b3993ff6d06cfd51a9462613",
      "parents": [
        "7866babad542bb5e1dc95deb5800b577abef58dd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 18 13:21:42 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 12:43:47 2006 -0400"
      },
      "message": "NFS,SUNRPC: Fix compiler warnings if CONFIG_PROC_FS \u0026 CONFIG_SYSCTL are unset\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "95cf959b245832ad49bb333bf88f9805244b225d",
      "tree": "956205e6be9f70d39124faa464111c2a821f75e4",
      "parents": [
        "d4a30e7e66c004da26dfe5229af7c10fe9853a7a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 18 13:14:06 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 12:43:46 2006 -0400"
      },
      "message": "VFS: Fix another open intent Oops\n\nIf the call to nfs_intent_set_file() fails to open a file in\nnfs4_proc_create(), we should return an error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b6f5d20b04dcbc3d888555522b90ba6d36c4106",
      "tree": "420f271eaef7d3def7d4433b151c3cb6d7a54770",
      "parents": [
        "99ac48f54a91d02140c497edc31dc57d4bc5c85d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] Make most file operations structs in fs/ const\n\nThis is a conversion to make the various file_operations structs in fs/\nconst.  Basically a regexp job, with a few manual fixups\n\nThe goal is both to increase correctness (harder to accidentally write to\nshared datastructures) and reducing the false sharing of cachelines with\nthings that get dirty in .data (while .rodata is nicely read only and thus\ncache clean)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "93d2341c750cda0df48a6cc67b35fe25f1ec47df",
      "tree": "f098a3bbfae65ce967591ee94d605c6e6bea21c6",
      "parents": [
        "fec433aaaae32a02329ad7d71b0f3c91b7525077"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Sun Mar 26 01:37:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:00 2006 -0800"
      },
      "message": "[PATCH] mempool: use mempool_create_slab_pool()\n\nModify well over a dozen mempool users to call mempool_create_slab_pool()\nrather than calling mempool_create() with extra arguments, saving about 30\nlines of code and increasing readability.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff28e22bdb8727fbc7d7889807bc5a73aae56c5",
      "tree": "f7418aa963d729bf9fe8bd44d6c9b6e424a6c6bf",
      "parents": [
        "3978d7179d3849848df8a37dd0a5acc20bcb8750"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003einvalidatepage return void\n\nThe return value of this function is never used, so let\u0027s be honest and\ndeclare it as void.\n\nSome places where invalidatepage returned 0, I have inserted comments\nsuggesting a BUG_ON.\n\n[akpm@osdl.org: JBD BUG fix]\n[akpm@osdl.org: rework for git-nfs]\n[akpm@osdl.org: don\u0027t go BUG in block_invalidate_page()]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "353ab6e97b8f209dbecc9f650f1f84e3da2a7bb1",
      "tree": "bffabd9a5a493ffd2b41dd825e71e848ca6ba6d7",
      "parents": [
        "e655a250d5fc12b6dfe0d436180ba4a3bfffdc9f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 26 01:37:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: fs/\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Van Hensbergen \u003cericvh@ericvh.myip.org\u003e\nCc: Robert Love \u003crml@tech9.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53846a21c1766326bb14ce8ab6e997a0c120675d",
      "tree": "37b04485e29844b4e734479181276a2f4d2447e4",
      "parents": [
        "2e9abdd9bad485970b37cd53a82f92702054984c",
        "1ebbe2b20091d306453a5cf480a87e6cd28ae76f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (103 commits)\n  SUNRPC,RPCSEC_GSS: spkm3--fix config dependencies\n  SUNRPC,RPCSEC_GSS: spkm3: import contexts using NID_cast5_cbc\n  LOCKD: Make nlmsvc_traverse_shares return void\n  LOCKD: nlmsvc_traverse_blocks return is unused\n  SUNRPC,RPCSEC_GSS: fix krb5 sequence numbers.\n  NFSv4: Dont list system.nfs4_acl for filesystems that don\u0027t support it.\n  SUNRPC,RPCSEC_GSS: remove unnecessary kmalloc of a checksum\n  SUNRPC: Ensure rpc_call_async() always calls tk_ops-\u003erpc_release()\n  SUNRPC: Fix memory barriers for req-\u003erq_received\n  NFS: Fix a race in nfs_sync_inode()\n  NFS: Clean up nfs_flush_list()\n  NFS: Fix a race with PG_private and nfs_release_page()\n  NFSv4: Ensure the callback daemon flushes signals\n  SUNRPC: Fix a \u0027Busy inodes\u0027 error in rpc_pipefs\n  NFS, NLM: Allow blocking locks to respect signals\n  NFS: Make nfs_fhget() return appropriate error values\n  NFSv4: Fix an oops in nfs4_fill_super\n  lockd: blocks should hold a reference to the nlm_file\n  NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n  NFSv4: Send the delegation stateid for SETATTR calls\n  ...\n"
    },
    {
      "commit": "fffb60f93ce5880aade88e01d7133b52a4879710",
      "tree": "7882f0550af8580c0646306f6d391fe610f7ef8c",
      "parents": [
        "4b6a9316fab51af611dc8671f296734089f6a22a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache format\n\nRewrap the overly long source code lines resulting from the previous\npatch\u0027s addition of the slab cache flag SLAB_MEM_SPREAD.  This patch\ncontains only formatting changes, and no function change.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6a9316fab51af611dc8671f296734089f6a22a",
      "tree": "078f8f0f01a206af529bef137d5b71515c39053d",
      "parents": [
        "44110fe385af23ca5eee8a6ad4ff55d50339097a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache filesystems\n\nMark file system inode and similar slab caches subject to SLAB_MEM_SPREAD\nmemory spreading.\n\nIf a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that\u0027s\nin a cpuset with the \u0027memory_spread_slab\u0027 option enabled goes to allocate\nfrom such a slab cache, the allocations are spread evenly over all the\nmemory nodes (task-\u003emems_allowed) allowed to that task, instead of favoring\nallocation on the node local to the current cpu.\n\nThe following inode and similar caches are marked SLAB_MEM_SPREAD:\n\n    file                               cache\n    \u003d\u003d\u003d\u003d                               \u003d\u003d\u003d\u003d\u003d\n    fs/adfs/super.c                    adfs_inode_cache\n    fs/affs/super.c                    affs_inode_cache\n    fs/befs/linuxvfs.c                 befs_inode_cache\n    fs/bfs/inode.c                     bfs_inode_cache\n    fs/block_dev.c                     bdev_cache\n    fs/cifs/cifsfs.c                   cifs_inode_cache\n    fs/coda/inode.c                    coda_inode_cache\n    fs/dquot.c                         dquot\n    fs/efs/super.c                     efs_inode_cache\n    fs/ext2/super.c                    ext2_inode_cache\n    fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr\n    fs/ext3/super.c                    ext3_inode_cache\n    fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr\n    fs/fat/cache.c                     fat_cache\n    fs/fat/inode.c                     fat_inode_cache\n    fs/freevxfs/vxfs_super.c           vxfs_inode\n    fs/hpfs/super.c                    hpfs_inode_cache\n    fs/isofs/inode.c                   isofs_inode_cache\n    fs/jffs/inode-v23.c                jffs_fm\n    fs/jffs2/super.c                   jffs2_i\n    fs/jfs/super.c                     jfs_ip\n    fs/minix/inode.c                   minix_inode_cache\n    fs/ncpfs/inode.c                   ncp_inode_cache\n    fs/nfs/direct.c                    nfs_direct_cache\n    fs/nfs/inode.c                     nfs_inode_cache\n    fs/ntfs/super.c                    ntfs_big_inode_cache_name\n    fs/ntfs/super.c                    ntfs_inode_cache\n    fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache\n    fs/ocfs2/super.c                   ocfs2_inode_cache\n    fs/proc/inode.c                    proc_inode_cache\n    fs/qnx4/inode.c                    qnx4_inode_cache\n    fs/reiserfs/super.c                reiser_inode_cache\n    fs/romfs/inode.c                   romfs_inode_cache\n    fs/smbfs/inode.c                   smb_inode_cache\n    fs/sysv/inode.c                    sysv_inode_cache\n    fs/udf/super.c                     udf_inode_cache\n    fs/ufs/super.c                     ufs_inode_cache\n    net/socket.c                       sock_inode_cache\n    net/sunrpc/rpc_pipe.c              rpc_inode_cache\n\nThe choice of which slab caches to so mark was quite simple.  I marked\nthose already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,\ninode_cache, and buffer_head, which were marked in a previous patch.  Even\nthough SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same\npotentially large file system i/o related slab caches as we need for memory\nspreading.\n\nGiven that the rule now becomes \"wherever you would have used a\nSLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use\nthe SLAB_MEM_SPREAD flag too\", this should be easy enough to maintain.\nFuture file system writers will just copy one of the existing file system\nslab cache setups and tend to get it right without thinking.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e8c96f8c29d89af0c13dc2819a9a00575846ca18",
      "tree": "b90ed0da4803df56a91be5979580e335af2d697c",
      "parents": [
        "b5029622ac86bb441dc5e641226fb1152fca02d7"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@nuerscht.ch",
        "time": "Fri Mar 24 03:15:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:19 2006 -0800"
      },
      "message": "[PATCH] fs: Use ARRAY_SIZE macro\n\nUse ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove a\nduplicate of ARRAY_SIZE.  Some trailing whitespaces are also deleted.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@nuerscht.ch\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b04c997b1120feefa1e6ee8e2902270bc055cd2",
      "tree": "09376b68d11ccce2a1ef53bac25a41a763ad36d0",
      "parents": [
        "6961ec8267d08e21011457b05d2263ec06bdcfe1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 24 03:15:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:15 2006 -0800"
      },
      "message": "[PATCH] vfs: MS_VERBOSE should be MS_SILENT\n\nThe meaning of MS_VERBOSE is backwards; if the bit is set, it really means,\n\"don\u0027t be verbose\".  This is confusing and counter-intuitive.\n\nIn addition, there is also no way to set the MS_VERBOSE flag in the\nmount(8) program in util-linux, but interesting, it does define options\nwhich would do the right thing if MS_SILENT were defined, which\nunfortunately we do not:\n\n#ifdef MS_SILENT\n  { \"quiet\",    0, 0, MS_SILENT    },   /* be quiet  */\n  { \"loud\",     0, 1, MS_SILENT    },   /* print out messages. */\n#endif\n\nSo the obvious fix is to deprecate the use of MS_VERBOSE and replace it\nwith MS_SILENT.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "096455a22acac06fb6d0d75f276170ab72d55ba6",
      "tree": "ba2f522da3e248720b919bc94193f791a239821c",
      "parents": [
        "9e57b302cf0f27063184196def620f39ca7a5fc6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Mon Mar 20 23:23:42 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 23:23:42 2006 -0500"
      },
      "message": "NFSv4: Dont list system.nfs4_acl for filesystems that don\u0027t support it.\n\nThanks to Frank Filz for pointing out that we list system.nfs4_acl extended\nattribute even on filesystems where we don\u0027t actually support nfs4_acl.\nThis is inconsistent with the e.g. ext3 POSIX ACL behaviour, and seems to\nannoy cp.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7a1218a277c45cba1fb8d7089407a1769c645c43",
      "tree": "c59634979c53606696993ef06297045015791d6e",
      "parents": [
        "43ac3f2961b8616da26114ec6dc76ac2a61f76ad"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 18:11:10 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 18:11:10 2006 -0500"
      },
      "message": "SUNRPC: Ensure rpc_call_async() always calls tk_ops-\u003erpc_release()\n\nCurrently this will not happen if we exit before rpc_new_task() was called.\nAlso fix up rpc_run_task() to do the same (for consistency).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c42de9dd67250fe984e0e31c9b542d721af6454b",
      "tree": "a4079b25a044f7124837f572e5342dc7614ca75d",
      "parents": [
        "7d46a49f512e8d10b23353781a8ba85edd4fa640"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "message": "NFS: Fix a race in nfs_sync_inode()\n\nKudos to Neil Brown for spotting the problem:\n\n\"in nfs_sync_inode, there is effectively the sequence:\n\n   nfs_wait_on_requests\n   nfs_flush_inode\n   nfs_commit_inode\n\n This seems a bit racy to me as if the only requests are on the\n -\u003ecommit list, and nfs_commit_inode is called separately after\n nfs_wait_on_requests completes, and before nfs_commit_inode start\n (say: by nfs_write_inode) then none of these function will return\n \u003e0, yet there will be some pending request that aren\u0027t waited for.\"\n\nThe solution is to search for requests to wait upon, search for dirty\nrequests, and search for uncommitted requests while holding the\nnfsi-\u003ereq_lock\n\nThe patch also cleans up nfs_sync_inode(), getting rid of the redundant\nFLUSH_WAIT flag. It turns out that we were always setting it.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d46a49f512e8d10b23353781a8ba85edd4fa640",
      "tree": "8da455d9f2f80f6c8ee82ec85449d2eb0ea12aba",
      "parents": [
        "deb7d638262019cbac5d15ab74ffd1c29242c7cb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "message": "NFS: Clean up nfs_flush_list()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "deb7d638262019cbac5d15ab74ffd1c29242c7cb",
      "tree": "88095acd2d455b594f4cec08702aa9691faff2a0",
      "parents": [
        "1dd761e9070aa2e543df3db41bd75ed4b8f2fab9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "message": "NFS: Fix a race with PG_private and nfs_release_page()\n\nWe don\u0027t need to set PG_private for readahead pages, since they never get\nunlocked while I/O is in progress. However there is a small race in\nnfs_readpage_release() whereby the page may be unlocked, and have\nPG_private set.\n\nFix is to have PG_private set only for the case of writes...\n\nAlso fix a bug in nfs_clear_page_writeback(): Don\u0027t attempt to clear the\nradix_tree tag if we\u0027ve already deleted the radix tree entry.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1dd761e9070aa2e543df3db41bd75ed4b8f2fab9",
      "tree": "7709d032855e0e821f3ff4ce9efc3bdb82bf4d2d",
      "parents": [
        "5428154827c2bf7cfdc9dab60db1e0eaa57c027a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:49 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:49 2006 -0500"
      },
      "message": "NFSv4: Ensure the callback daemon flushes signals\n\nIf the callback daemon is signalled, but is unable to exit because it still\nhas users, then we need to flush signals. If not, then svc_recv() can\nnever sleep, and so we hang.\nIf we flush signals, then we also have to be prepared to resend them when\nwe want the thread to exit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a9a801787a761616589a6526d7a29c13f4deb3d8",
      "tree": "73754598e8c65cf18f0a96ca3c32433dcb34cbe7",
      "parents": [
        "03f28e3a2059fc466761d872122f30acb7be61ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "message": "NFS, NLM: Allow blocking locks to respect signals\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03f28e3a2059fc466761d872122f30acb7be61ae",
      "tree": "d478e553b79520c34bb3d06e75b59609de2993f4",
      "parents": [
        "01d0ae8beaee75d954900109619b700fe68707d9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "message": "NFS: Make nfs_fhget() return appropriate error values\n\nCurrently it returns NULL, which usually gets interpreted as ENOMEM. In\nfact it can mean a host of issues.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01d0ae8beaee75d954900109619b700fe68707d9",
      "tree": "06180b83f10e0008db9f6bfa6a5fa420bf568ebe",
      "parents": [
        "d9f6eb75d4900782a095b98470decfe98971f920"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "message": "NFSv4: Fix an oops in nfs4_fill_super\n\nThe mount statistics patches introduced a call to nfs_free_iostats that is\nnot only redundant, but actually causes an oops.\n\nAlso fix a memory leak due to the lack of a call to nfs_free_iostats on\nunmount.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51581f3bf922512880f52a7777923fd6dcfc792b",
      "tree": "91e9c6c6a89705e76ec07574d296967c3bde24a9",
      "parents": [
        "3e4f6290ca4df7464ee066123f2bca4298c2dab4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:47 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:47 2006 -0500"
      },
      "message": "NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3e4f6290ca4df7464ee066123f2bca4298c2dab4",
      "tree": "a8a2b32348be0df1a886ca0960112d23e1458572",
      "parents": [
        "f25bc34967d76610d17bc70769d7c220976eeeb1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "message": "NFSv4: Send the delegation stateid for SETATTR calls\n\nIn the case where we hold a delegation stateid, use that in for inside\nSETATTR calls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f25bc34967d76610d17bc70769d7c220976eeeb1",
      "tree": "f967791903a28f75968a7ce641f9a61502c037ba",
      "parents": [
        "6041b79192bdf0e7ab18ea6859effa5d8311391b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "message": "NFSv4: Ensure nfs_callback_down() calls svc_destroy()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e4cd038a45a46ffbe06a1a72f3f15246e5b041ca",
      "tree": "61b926d8644ce6c3888f6891ba44d6db6d116adb",
      "parents": [
        "3a649b884637c4fdff50a6beebc3dc0e6082e048"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "message": "NLM: Fix nlmclnt_test to not copy private part of locks\n\nThe struct file_lock does not carry a properly initialised lock,\nso don\u0027t copy it as if it were.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d72b7a6b26b9009b7a05117fe2e04b3a73ae4a5c",
      "tree": "dcdbc9386b19e4976cf156baf35985016c1d28f4",
      "parents": [
        "6b45d858ed6821dd687efd3b68929de2e4954fec"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "message": "NFS: O_DIRECT needs to use a completion\n\nNow that we have aio writes, it is possible for dreq-\u003eoutstanding to be\nzero, but for the I/O not to have completed. Convert struct nfs_direct_req\nto use a completion to signal when the I/O is done.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b45d858ed6821dd687efd3b68929de2e4954fec",
      "tree": "fcc25885f02133177e2bc093f8cd09879cbd05cf",
      "parents": [
        "606bbba06b11ebcbdf3a4fcd8cce4507c5bd7a4b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "message": "NFS: Clean up nfs_get_user_pages\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "606bbba06b11ebcbdf3a4fcd8cce4507c5bd7a4b",
      "tree": "b2cb6a1210aa45da2856c0846ad3e835b41629d4",
      "parents": [
        "5eb53f41d11c04aa4ddb9f168b6bbb27b9790348"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:42 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:42 2006 -0500"
      },
      "message": "NFS: fix compiler warnings on 64-bit platforms\n\nIntroduced by NFS aio+dio patches.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled on 64-bit hardware.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3feb2d49394b7874348a6e43c076b780c1d222c5",
      "tree": "6d27d4170fd9435574bd804033793f9d0d69a355",
      "parents": [
        "5db3a7b2cabe8f0957683f798c4f8fa8605f9ebb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "message": "NFS: Uninline nfs_writedata_(alloc|free) and nfs_readdata_(alloc|free)\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5db3a7b2cabe8f0957683f798c4f8fa8605f9ebb",
      "tree": "969aa2e7561796b3b8796a2f6645693f7ebe8d20",
      "parents": [
        "a8881f5a5c723f82da84b786d3ca83a0df9e0c33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "message": "NFS: Debugging code for nfs_direct_(read|write)_schedule()\n\nMake sure that we\u0027re doing our list accounting correctly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a8881f5a5c723f82da84b786d3ca83a0df9e0c33",
      "tree": "50e01d4a0d3b803a5103e427e94a316d7ec92c81",
      "parents": [
        "fad61490419b3e494f300e9b2579810ef3bcda31"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "message": "NFS: O_DIRECT async IO may lose context\n\nThe struct nfs_direct_req currently keeps a pointer to the file descriptor\nwithout referencing it. This may cause problems if the parent process is\nkilled.\n\nThe nfs_open_context should normally have all the information that we\u0027re\ncurrently using the filp for, and unlike fput(), is safe to release from\nan rpciod process context.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fad61490419b3e494f300e9b2579810ef3bcda31",
      "tree": "1bca68921a83d4dc0219aa8d46c3c8e8313965c2",
      "parents": [
        "e17b1fc4b35399935f00a635206e183d9292fe4f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "message": "nfs: Use UNSTABLE + COMMIT for NFS O_DIRECT writes\n\nCurrently NFS O_DIRECT writes use FILE_SYNC so that a COMMIT is not\nnecessary.  This simplifies the internal logic, but this could be a\ndifficult workload for some servers.\n\nInstead, let\u0027s send UNSTABLE writes, and after they all complete, send a\nCOMMIT for the dirty range.  After the COMMIT returns successfully, then do\nthe wake_up or fire off aio_complete().\n\nTest plan:\nAsync direct I/O tests against Solaris (or any server that requires\ncommitted unstable writes).  Reboot server during test.\n\nBased on an earlier patch by Chuck Lever \u003ccel@netapp.com\u003e\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e17b1fc4b35399935f00a635206e183d9292fe4f",
      "tree": "950fd4a83d7b6ff89286fd89a9871b0da66a4435",
      "parents": [
        "a37ec012d7fd352648c8455d3396ea24001efcd3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "message": "NFS: Make nfs_commit_alloc() extern\n\nWe need to use nfs_commit_alloc() in fs/nfs/direct.c.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a37ec012d7fd352648c8455d3396ea24001efcd3",
      "tree": "778182e20ada2cf1ce3a5507ab1eec96c16633b2",
      "parents": [
        "15ce4a0c1ce0d5e288398cb9e5493fd4e55e2025"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "message": "NFS: fix data_update accounting in NFS direct I/O path\n\n^C against \"iozone -I\" is hitting the assertion in nfs_clear_inode().\n\nTest plan:\n\"iozone -i0 -I -a -c\" against a slow server, then control C.  This should\nnot cause an oops.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "15ce4a0c1ce0d5e288398cb9e5493fd4e55e2025",
      "tree": "b40b3096bbbed8b0aa2a29e9374240dd7eaa47a0",
      "parents": [
        "88467055f7654302c12df74e5fe4d12516656a39"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "message": "NFS: Replace atomic_t variables in nfs_direct_req with a single spin lock\n\nThree atomic_t variables cause a lot of bus locking.  Because they are all\nused in the same places in the code, just use a single spin lock.\n\nNow that the atomic_t variables are gone, we can remove the request size\nlimitation since the code no longer depends on the limited width of atomic_t\non some platforms.\n\nTest plan:\nCompile with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.  Millions of fsx\noperations, iozone, OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88467055f7654302c12df74e5fe4d12516656a39",
      "tree": "cf1ccdc6a933bcd93665fcea4947e0f7f59d5241",
      "parents": [
        "9eafa8cc521b489f205bf7b0634c99e34e046606"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "message": "NFS: clean up comments and tab damage in direct.c\n\nClean up tab damage and comments.  Replace \"file_offset\" with more commonly\nused \"pos\".\n\nTest plan:\nCompile with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9eafa8cc521b489f205bf7b0634c99e34e046606",
      "tree": "5afa96efb2dcd0a211402603977b2ce0428a9741",
      "parents": [
        "c89f2ee5f9223b864725f7344f24a037dfa76568"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "message": "NFS: support EIOCBQUEUED return in direct write path\n\nFor async iocb\u0027s, the NFS direct write path now returns EIOCBQUEUED,\nand calls aio_complete when all the requested writes are finished.  The\nsynchronous part of the NFS direct write path behaves exactly as it\nwas before.\n\nShared mapped NFS files will have some coherency difficulties when\naccessed concurrently with aio+dio.  Will need to explore how this\nis handled in the local file system case.\n\nTest plan:\naio-stress with \"-O\". OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c89f2ee5f9223b864725f7344f24a037dfa76568",
      "tree": "b83235bfd96c4a81697609f61b2ce4e3de54e49b",
      "parents": [
        "47989d7454398827500d0e73766270986a3b488f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "message": "NFS: make iocb available everywhere in direct write path\n\nPass the iocb argument all the way down to the direct write request\nscheduler, and make it available in nfs_direct_write_result.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "47989d7454398827500d0e73766270986a3b488f",
      "tree": "ca7c3ce3ec47d6f16fa1b42be7c468266ed3fce9",
      "parents": [
        "462d5b3296b56289efec426499a83faad4c08d9e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "message": "NFS: remove support for multi-segment iovs in the direct write path\n\nEliminate the persistent use of automatic storage in all parts of the\nNFS client\u0027s direct write path to pave the way for introducing support\nfor aio against files opened with the O_DIRECT flag.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "462d5b3296b56289efec426499a83faad4c08d9e",
      "tree": "eb4f9a0418e1190958603360cf9bcea0cbb67727",
      "parents": [
        "63ab46abc70b01cb0711301f5ddb08c1c0bb9b1c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "message": "NFS: make direct write path generate write requests concurrently\n\nDuplicate infrastructure from direct read path that will allow write\npath to generate multiple write requests concurrently.  This will\nenable us to add support for aio in this path.\n\nTemporarily we will lose the ability to do UNSTABLE writes followed by\na COMMIT in the direct write path.  However, all applications I am\naware of that use NFS O_DIRECT currently write in relatively small\nchunks, so this should not be inconvenient in any way.\n\nTest plan:\nMillions of fsx-odirect ops. OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "63ab46abc70b01cb0711301f5ddb08c1c0bb9b1c",
      "tree": "4d1d03a95f1468d240c3c7e0cd207fc14aa54023",
      "parents": [
        "93619e5989173614bef0013b0bb8a3fe3dbd5a95"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "message": "NFS: create common routine for handling direct I/O completion\n\nFactor out the common piece of completing an NFS direct I/O request.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "93619e5989173614bef0013b0bb8a3fe3dbd5a95",
      "tree": "2172226a57bae4db4943d271e5250fd0606a74d1",
      "parents": [
        "bc0fb201b34b12e2d16e8cbd5bb078c1db936304"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "message": "NFS: create common routine for allocating nfs_direct_req\n\nFactor out a small common piece of the path that allocate nfs_direct_req\nstructures.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bc0fb201b34b12e2d16e8cbd5bb078c1db936304",
      "tree": "58a9aa8bee2de7e42f81c522115cd10078a6a5ef",
      "parents": [
        "487b83723ed4d4eaafd5109f36560da4f15c6578"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "message": "NFS: create common routine for waiting for direct I/O to complete\n\nWe\u0027re about to add asynchrony to the NFS direct write path.  Begin by\nabstracting out the common pieces in the read path.\n\nThe first piece is nfs_direct_read_wait, which works the same whether the\nprocess is waiting for a read or a write.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "487b83723ed4d4eaafd5109f36560da4f15c6578",
      "tree": "8c869604c0b934f5b207c89e90aea9977c5d8ade",
      "parents": [
        "99514f8fdda2beef1ca922b7f9d89c1a2c57fec0"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "message": "NFS: support EIOCBQUEUED return in direct read path\n\nFor async iocb\u0027s, the NFS direct read path should return EIOCBQUEUED and\ncall aio_complete when all the requested reads are finished.  The\nsynchronous part of the NFS direct read path behaves exactly as it was\nbefore.\n\nTest plan:\naio-stress with \"-O\".  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99514f8fdda2beef1ca922b7f9d89c1a2c57fec0",
      "tree": "74a96ad19ed705775d9cd87b79c28aafe0286dee",
      "parents": [
        "0cdd80d07fb0f558dfdb30f6e0b9905f5e5475f1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "message": "NFS: make iocb available everywhere in direct read path\n\nPass the iocb argument all the way down to the direct read request\nscheduler, and make it available in nfs_direct_read_result.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0cdd80d07fb0f558dfdb30f6e0b9905f5e5475f1",
      "tree": "c25fe5e4bdb4196039bf5b098c1c9f58e98af2e2",
      "parents": [
        "5dd602f20688e08c85ac91e0451c4e6321ed25d7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "message": "NFS: remove support for multi-segment iovs in the direct read path\n\nEliminate the persistent use of automatic storage in all parts of the NFS\nclient\u0027s direct read path to pave the way for introducing support for aio\nagainst files opened with the O_DIRECT flag.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5dd602f20688e08c85ac91e0451c4e6321ed25d7",
      "tree": "e89a89d68ec0fcdc6fd18570c0df9daa15e23902",
      "parents": [
        "d4cc948ba97980c55a308eab167a695109796456"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "message": "NFS: use size_t type for holding rsize bytes in NFS O_DIRECT read path\n\nsize_t is used for holding byte counts, so use it for variables storing rsize.\nNote that the write path will be updated as we add support for async\nO_DIRECT writes.\n\nTest plan:\nNeed to verify that existing comparisons against new size_t variables behave\ncorrectly.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d4cc948ba97980c55a308eab167a695109796456",
      "tree": "fbf3b293b8ac129019723fe53dca0329c7552c13",
      "parents": [
        "b8a32e2b8b7fefff994c89d398b6ac920a195b43"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "message": "NFS: update comments and function definitions in fs/nfs/direct.c\n\nUpdate to latest coding style standards.  Remove block comments on\nstatically defined functions, and place function definitions all on\none line.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b8a32e2b8b7fefff994c89d398b6ac920a195b43",
      "tree": "20f0c2610eddb104a8cbf1d7981b34fc962a92ea",
      "parents": [
        "ec06c096edec0755534c7126f4caded69de131c2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "message": "NFS: clean up NFS client\u0027s a_ops-\u003edirect_IO method\n\nThe NFS client\u0027s a_ops-\u003edirect_IO method, nfs_direct_IO, is required to\nbe present to allow NFS files to be opened with O_DIRECT, but is never\ncalled because the NFS client shunts reads and writes to files opened\nwith O_DIRECT directly to its own routines.\n\nGut the nfs_direct_IO function.  This eliminates the only part of the\nNFS client\u0027s direct I/O path that requires support for multi-segment\niovs, allowing further simplification in subsequent patches.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.  Millions\nof fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec06c096edec0755534c7126f4caded69de131c2",
      "tree": "1f5b219c09dea1d9886cefe3ea3f7cef560a5e9a",
      "parents": [
        "788e7a89a03e364855583c0ab4649b94925efbb9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "message": "NFS: Cleanup of NFS read code\n\nSame callback hierarchy inversion as for the NFS write calls. This patch is\nnot strictly speaking needed by the O_DIRECT code, but avoids confusing\ndifferences between the asynchronous read and write code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "788e7a89a03e364855583c0ab4649b94925efbb9",
      "tree": "4434c93af133a92f550ba0ecc8d3254cb222e72d",
      "parents": [
        "7117bf3dfb10b534a017260d9fc643bc1d0afd2a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "message": "NFS: Cleanup of NFS write code in preparation for asynchronous o_direct\n\nThis patch inverts the callback hierarchy for NFS write calls.\n\nInstead of having the NFSv2/v3/v4-specific code set up the RPC callback\nops, we allow the original caller to do so. This allows for more\nflexibility w.r.t. how to set up and tear down the nfs_write_data\nstructure while still allowing the NFSv3/v4 code to perform error\nhandling.\n\nThe greater flexibility is needed by the asynchronous O_DIRECT code, which\nwants to be able to hold on to the original nfs_write_data structures after\nthe WRITE RPC call has completed in order to be able to replay them if the\nCOMMIT call determines that the server has rebooted.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "8dc7c3115b611c00006eac3ee5b108296432aab7"
}
