)]}'
{
  "log": [
    {
      "commit": "b4946ffb1860597b187d78d61ac6504177eb0ff8",
      "tree": "56e5df1992aa478b806e5a768eda668543a5bb89",
      "parents": [
        "7a74fc4925067c2102175baef73f9b07ab519b71"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 30 12:58:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 30 16:26:01 2007 -0400"
      },
      "message": "NFS: Fix a refcount leakage in O_DIRECT\n\nThe current code is leaking a reference to dreq-\u003ekref when the calls to\nnfs_direct_read_schedule() and nfs_direct_write_schedule() return an\nerror.\nThis patch moves the call to kref_put() from nfs_direct_wait() back into\nnfs_direct_read() and nfs_direct_write() (which are the functions that\nactually took the reference in the first place) fixing the leak.\n\nThanks to Denis V. Lunev for spotting the bug and proposing the original\nfix.\n\nAcked-by: Denis V. Lunev \u003cdlunev@gmail.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d4a8f3677fe2c2fc86443254fe42825e244c194d",
      "tree": "7b3b31104103208c852ad30616667aeb5256f34e",
      "parents": [
        "749e146e01cf87ce3c1d6f6077b877471b04df5b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 22 10:22:27 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 11:18:18 2007 -0400"
      },
      "message": "NFS: Fix nfs_direct_dirty_pages()\n\nWe only need to dirty the pages that were actually read in.\n\nAlso convert nfs_direct_dirty_pages() to call set_page_dirty() instead of\nset_page_dirty_lock(). A call to lock_page() is unacceptable in an rpciod\ncallback function.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "749e146e01cf87ce3c1d6f6077b877471b04df5b",
      "tree": "86c694a9c6dd990e445eb7be38de43255d0336ed",
      "parents": [
        "7fe7f8487ae742239dd8c66596e2311c30d057d1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sat May 19 17:22:46 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 10:44:20 2007 -0400"
      },
      "message": "NFS: Fix handful of compiler warnings in direct.c\n\nThis patch fixes a couple of signage issues that were causing an Oops\nwhen running the LTP diotest4 test. get_user_pages() returns a signed\nerror, hence we need to be careful when comparing with the unsigned\nnumber of pages from data-\u003enpages.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7fe7f8487ae742239dd8c66596e2311c30d057d1",
      "tree": "c506bd7dcacc9d5b25b3295bd1f327e534532c54",
      "parents": [
        "585a2858b970cb6e2e5ca4877eefd18b4dba8ed4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 20 10:18:27 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 24 10:44:20 2007 -0400"
      },
      "message": "NFS: Avoid a deadlock situation on write\n\nWhen processes are allowed to attempt to lock a non-contiguous range of nfs\nwrite requests, it is possible for generic_writepages to \u0027wrap round\u0027 the\naddress space, and call writepage() on a request that is already locked by\nthe same process.\n\nWe avoid the deadlock by checking if the page index is contiguous with the\nlist of nfs write requests that is already held in our\nnfs_pageio_descriptor prior to attempting to lock a new request.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e8edc6e03a5c8562dc70a6d969f732bdb355a7e7",
      "tree": "fc86c863655128a7041dfe613d14393d761fa7b9",
      "parents": [
        "ff1be9ad61e3e17ba83702d8ed0b534e5b8ee15c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 21 01:22:52 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 21 09:18:19 2007 -0700"
      },
      "message": "Detach sched.h from mm.h\n\nFirst thing mm.h does is including sched.h solely for can_do_mlock() inline\nfunction which has \"current\" dereference inside. By dealing with can_do_mlock()\nmm.h can be detached from sched.h which is good. See below, why.\n\nThis patch\na) removes unconditional inclusion of sched.h from mm.h\nb) makes can_do_mlock() normal function in mm/mlock.c\nc) exports can_do_mlock() to not break compilation\nd) adds sched.h inclusions back to files that were getting it indirectly.\ne) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were\n   getting them indirectly\n\nNet result is:\na) mm.h users would get less code to open, read, preprocess, parse, ... if\n   they don\u0027t need sched.h\nb) sched.h stops being dependency for significant number of files:\n   on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,\n   after patch it\u0027s only 3744 (-8.3%).\n\nCross-compile tested on\n\n\tall arm defconfigs, all mips defconfigs, all powerpc defconfigs,\n\talpha alpha-up\n\tarm\n\ti386 i386-up i386-defconfig i386-allnoconfig\n\tia64 ia64-up\n\tm68k\n\tmips\n\tparisc parisc-up\n\tpowerpc powerpc-up\n\ts390 s390-up\n\tsparc sparc-up\n\tsparc64 sparc64-up\n\tum-x86_64\n\tx86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig\n\nas well as my two usual configs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd504ea16f34a29da4aa933ae7ab917fcfd25fd7",
      "tree": "0502645dc159be29c33c992e9e56dc3156074279",
      "parents": [
        "5cf4cf65a8ccca44ec9b357ebdb2b517269d7e8a",
        "0479ea0eab197b3e5d4c731f526c02e5e3fbfbd0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 17 11:36:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 17 11:36:59 2007 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/repositories/git/linux-2.6/\n"
    },
    {
      "commit": "a35afb830f8d71ec211531aeb9a621b09a2efb39",
      "tree": "198280081e1f8b2f6c450742a5075cc7904a3d58",
      "parents": [
        "5577bd8a85c8b7643a241789b14fafa9c8a6c7db"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Remove SLAB_CTOR_CONSTRUCTOR\n\nSLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e42c3e2aec6e24e58c4c601e1a33f0e9e36e314",
      "tree": "1397e0c0df117b06563417d4e1f19e2f443fc062",
      "parents": [
        "10afec9081fee7e48995fa396fba22c7de4b99d4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:20:41 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 19:33:46 2007 -0400"
      },
      "message": "NFS: Fix more sparse warnings\n\n - fs/nfs/nfs4xdr.c:2499:42: warning: incorrect type in argument 2\n   (different signedness)\n - fs/nfs/nfs4xdr.c:2658:49: warning: incorrect type in argument 4\n   (different explicit signedness)\n - fs/nfs/nfs4xdr.c:2683:50: warning: incorrect type in argument 4\n   (different explicit signedness)\n - fs/nfs/nfs4xdr.c:3063:68: warning: incorrect type in argument 4\n   (different explicit signedness)\n - fs/nfs/nfs4xdr.c:3065:68: warning: incorrect type in argument 4\n   (different explicit signedness)\n\n - fs/nfs/callback_xdr.c:138:31: warning: incorrect type in argument 2\n   (different signedness)\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "10afec9081fee7e48995fa396fba22c7de4b99d4",
      "tree": "edf1e3abf62d95eeef178dc8060cf033cc7940df",
      "parents": [
        "9c9cc93ad2a5d9972672e03685af20e8cea1e5a4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:16:04 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 19:33:46 2007 -0400"
      },
      "message": "NFS: Fix some \u0027sparse\u0027 warnings...\n\n - fs/nfs/dir.c:610:8: warning: symbol \u0027nfs_llseek_dir\u0027 was not declared.\n   Should it be static?\n - fs/nfs/dir.c:636:5: warning: symbol \u0027nfs_fsync_dir\u0027 was not declared.\n   Should it be static?\n - fs/nfs/write.c:925:19: warning: symbol \u0027req\u0027 shadows an earlier one\n - fs/nfs/write.c:61:6: warning: symbol \u0027nfs_commit_rcu_free\u0027 was not\n   declared. Should it be static?\n - fs/nfs/nfs4proc.c:793:5: warning: symbol \u0027nfs4_recover_expired_lease\u0027\n   was not declared. Should it be static?\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8ae20abdd18c6c7f21bbae931353e7cfad77d7b6",
      "tree": "8134b98cb6b741742972764307d455e078c52bbf",
      "parents": [
        "60945cb7c8377b727288275f21791914fe65311c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 16:50:45 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 19:33:45 2007 -0400"
      },
      "message": "NFS4: Fix incorrect use of sizeof() in fs/nfs/nfs4xdr.c\n\nThe XDR code should not depend on the physical allocation size of\nstructures like nfs4_stateid and nfs4_verifier since those may have to\nchange at some future date. We therefore replace all uses of\nsizeof() with constants like NFS4_VERIFIER_SIZE and NFS4_STATEID_SIZE.\n\nThis also has the side-effect of fixing some warnings of the type\n\tformat ‘%u’ expects type ‘unsigned int’, but argument X has type\n\t\t‘long unsigned int’\non 64-bit systems\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "60945cb7c8377b727288275f21791914fe65311c",
      "tree": "eb84b18a1e590d3c56b3779b4e1d071b21fca2bc",
      "parents": [
        "550facd138d8f6b0ca683c1e894b5cd0f381cb63"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Thu May 10 22:55:08 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 19:33:45 2007 -0400"
      },
      "message": "NFS: use zero_user_page\n\nUse zero_user_page() instead of the newly deprecated memclear_highpage_flush().\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7a13e932281e7042a592f4f14db0b348199e7aac",
      "tree": "474245a3ed19f26528fd8b1bdda946fa9cd751d7",
      "parents": [
        "fee7f23feaf0845fdfd47d20cddc75652552fbb8"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Thu Apr 26 00:29:02 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:01 2007 -0400"
      },
      "message": "NFS: Kill the obsolete NFS_PARANOIA\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fee7f23feaf0845fdfd47d20cddc75652552fbb8",
      "tree": "d5ce2fd3e86f6cf0fa61af8d4a5ecff8f149b796",
      "parents": [
        "ddce40df6e14dd474bbd9daa006dcc290dea6326"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Thu Apr 26 00:29:03 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:01 2007 -0400"
      },
      "message": "NFS: use __set_current_state()\n\nuse __set_current_state(TASK_*) instead of current-\u003estate \u003d TASK_*, in fs/nfs\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e4cc6ee2e40bdd57990577b7f851fa2ca48edf47",
      "tree": "fa2515a197df6a75be707a1054a0c0f026f38ba4",
      "parents": [
        "6ce7dc940701cf3fde3c6e826a696b333092cbb1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue May 08 18:23:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:00 2007 -0400"
      },
      "message": "NFS: Clean up NFSv4 XDR error message\n\nMake it more useful for debugging purposes.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6ce7dc940701cf3fde3c6e826a696b333092cbb1",
      "tree": "0894788349bae7b0d1707dcab98505b5ada8a3ef",
      "parents": [
        "aa3d1faebe6e214cd96be0e587571477ff6fd9fc"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue May 08 18:23:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:58:00 2007 -0400"
      },
      "message": "NFS: NFS client underestimates how large an NFSv4 SETATTR reply can be\n\nThe maximum size of an NFSv4 SETATTR compound reply should include the\nGETATTR operation that we send.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e70c490810dc683fad39e57cf00e69d5f120c542",
      "tree": "24276f69c064376d3c69979f61e181b377560795",
      "parents": [
        "e62c2bba1fb7cf068eb78d731da46e4447a9efb1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 09:00:18 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:57:59 2007 -0400"
      },
      "message": "NFS: Remove redundant check in nfs_check_verifier()\n\nThe check for nfs_attribute_timeout(dir) in nfs_check_verifier is\nredundant: nfs_lookup_revalidate() will already call nfs_revalidate_inode()\non the parent dir when necessary.\n\nThe only case where this is not done is the case of a negative dentry. Fix\nthis case by moving up the revalidation code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e62c2bba1fb7cf068eb78d731da46e4447a9efb1",
      "tree": "bce53fe724400f7cfa1ae4621aafc6aa70bd564d",
      "parents": [
        "38cb162b7585d837083b8365da1eb32687c5164c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 09:00:17 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 09 17:57:58 2007 -0400"
      },
      "message": "NFS: Fix a jiffie wraparound issue\n\ndentry verifiers are always set to the parent directory\u0027s\ncache_change_attribute. There is no reason to be testing for anything other\nthan equality when we\u0027re trying to find out if the dentry has been checked\nsince the last time the directory was modified.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "277866a0e3a4f97e859f7a621f5b4f5359c9526c",
      "tree": "20b244f5c0c7b6a692f0290f70f0fefae9d88d5a",
      "parents": [
        "79df3c19aa601d264719b04e3a788a7b852f4859"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 08 00:35:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:21 2007 -0700"
      },
      "message": "nfs: fix congestion control: use atomic_longs\n\nChange the atomic_t in struct nfs_server to atomic_long_t in anticipation\nof machines that can handle 8+TB of (4K) pages under writeback.\n\nHowever I suspect other things in NFS will start going *bang* by then.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d56d3c43cc97ae48586745556f5a5b564d61582",
      "tree": "28f2edc1e69b79e94d99023041dd0358861b6956",
      "parents": [
        "0f9008ef38d5a6305d94bbdd8f20d68fc75c63b6",
        "586759f03e2e9031ac5589912a51a909ed53c30a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "message": "Merge branch \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux:\n  gfs2: nfs lock support for gfs2\n  lockd: add code to handle deferred lock requests\n  lockd: always preallocate block in nlmsvc_lock()\n  lockd: handle test_lock deferrals\n  lockd: pass cookie in nlmsvc_testlock\n  lockd: handle fl_grant callbacks\n  lockd: save lock state on deferral\n  locks: add fl_grant callback for asynchronous lock return\n  nfsd4: Convert NFSv4 to new lock interface\n  locks: add lock cancel command\n  locks: allow {vfs,posix}_lock_file to return conflicting lock\n  locks: factor out generic/filesystem switch from setlock code\n  locks: factor out generic/filesystem switch from test_lock\n  locks: give posix_test_lock same interface as -\u003elock\n  locks: make -\u003elock release private data before returning in GETLK case\n  locks: create posix-to-flock helper functions\n  locks: trivial removal of unnecessary parentheses\n"
    },
    {
      "commit": "50953fe9e00ebbeffa032a565ab2f08312d51a87",
      "tree": "9f95f56f0b51600959a76cd88ce17f6e9c7a98a3",
      "parents": [
        "4b1d89290b62bb2db476c94c82cf7442aab440c8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_DEBUG_INITIAL flag\n\nI have never seen a use of SLAB_DEBUG_INITIAL.  It is only supported by\nSLAB.\n\nI think its purpose was to have a callback after an object has been freed\nto verify that the state is the constructor state again?  The callback is\nperformed before each freeing of an object.\n\nI would think that it is much easier to check the object state manually\nbefore the free.  That also places the check near the code object\nmanipulation of the object.\n\nAlso the SLAB_DEBUG_INITIAL callback is only performed if the kernel was\ncompiled with SLAB debugging on.  If there would be code in a constructor\nhandling SLAB_DEBUG_INITIAL then it would have to be conditional on\nSLAB_DEBUG otherwise it would just be dead code.  But there is no such code\nin the kernel.  I think SLUB_DEBUG_INITIAL is too problematic to make real\nuse of, difficult to understand and there are easier ways to accomplish the\nsame effect (i.e.  add debug code before kfree).\n\nThere is a related flag SLAB_CTOR_VERIFY that is frequently checked to be\nclear in fs inode caches.  Remove the pointless checks (they would even be\npointless without removeal of SLAB_DEBUG_INITIAL) from the fs constructors.\n\nThis is the last slab flag that SLUB did not support.  Remove the check for\nunimplemented flags from SLUB.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2",
      "tree": "8bbfe5072279227cc50a941ad4813908082426a1",
      "parents": [
        "714b8171af9c930a59a0da8f6fe50518e70ab035"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun May 06 14:49:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "mm: make read_cache_page synchronous\n\nEnsure pages are uptodate after returning from read_cache_page, which allows\nus to cut out most of the filesystem-internal PageUptodate calls.\n\nI didn\u0027t have a great look down the call chains, but this appears to fixes 7\npossible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in\necryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in\nblock2mtd.  All depending on whether the filler is async and/or can return\nwith a !uptodate page.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d6a8c5c213e34c475e72b245a8eb709258e968c",
      "tree": "96110535c2bd9485129c0753a9e0f012083b220f",
      "parents": [
        "70cc6487a4e08b8698c0e2ec935fb48d10490162"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Wed Feb 21 00:55:18 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 17:39:00 2007 -0400"
      },
      "message": "locks: give posix_test_lock same interface as -\u003elock\n\nposix_test_lock() and -\u003elock() do the same job but have gratuitously\ndifferent interfaces.  Modify posix_test_lock() so the two agree,\nsimplifying some code in the process.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "70cc6487a4e08b8698c0e2ec935fb48d10490162",
      "tree": "3dbf00694a5fcbea48233b78697a50effdcc80c9",
      "parents": [
        "c2fa1b8a6c059dd08a802545fed3badc8df2adc1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Feb 22 18:48:53 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 17:38:19 2007 -0400"
      },
      "message": "locks: make -\u003elock release private data before returning in GETLK case\n\nThe file_lock argument to -\u003elock is used to return the conflicting lock\nwhen found.  There\u0027s no reason for the filesystem to return any private\ninformation with this conflicting lock, but nfsv4 is.\n\nFix nfsv4 client, and modify locks.c to stop calling fl_release_private\nfor it in this case.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\nCc: \"Trond Myklebust\" \u003cTrond.Myklebust@netapp.com\u003e\"\n"
    },
    {
      "commit": "84dde76c4a2d99ed2d7de6ec82c53b56620900a3",
      "tree": "3af3f15c629a6e80b484e05ba6860097fcbcb21e",
      "parents": [
        "a19b89cad51b6f0da8f4bafdfdcfb10264cbcdea"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 04 14:44:06 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 04 14:44:06 2007 -0400"
      },
      "message": "NFS: Fix a compile glitch on 64-bit systems\n\nfs/nfs/pagelist.c:226: error: conflicting types for \u0027nfs_pageio_init\u0027\ninclude/linux/nfs_page.h:80: error: previous declaration of \u0027nfs_pageio_init\u0027 was here\n\nThanks to Andrew for spotting this...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a19b89cad51b6f0da8f4bafdfdcfb10264cbcdea",
      "tree": "65631769b94790d187ef2f556016758ea3bd6f83",
      "parents": [
        "61322b30139b79ec77170723a3a80043dcc94e87"
      ],
      "author": {
        "name": "Jason Uhlenkott",
        "email": "juhlenko@akamai.com",
        "time": "Thu Apr 26 17:25:51 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 02 07:37:29 2007 -0700"
      },
      "message": "NFS: Clean up nfs_create_request comments\n\nRemove some stale comments about hard limits which went away in 2.5.\n\nSigned-off-by: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "08efa202eb398ce7939885a4a01df370fd392068",
      "tree": "e3de771d6a356b1539a31c1ae6c4e47350d37c74",
      "parents": [
        "83672d392f7bcf556f7920d6715e4174d9373ee0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 01 10:56:25 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 02 07:36:09 2007 -0700"
      },
      "message": "NFS4: invalidate cached acl on setacl\n\nThe ACL that the server sets may not be exactly the one we set--for\nexample, it may silently turn off bits that it does not support.  So we\nshould remove any cached ACL so that any subsequent request for the ACL\nwill go to the server.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "83672d392f7bcf556f7920d6715e4174d9373ee0",
      "tree": "43af2f3428bd5a8eec3b089faf5aaef6ff7a4189",
      "parents": [
        "1f4eab7e7c1d90dcd8ca4d7c064ee78dfbb345eb"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Mon Feb 26 12:48:25 2007 +1100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:19 2007 -0700"
      },
      "message": "NFS: Fix directory caching problem - with test case and patch.\n\nTry running this script in an NFS mounted directory (Client relatively\nrecent - 2.6.18 has the problem as does 2.6.20).\n\n------------------------------------------------------\n#!/bin/bash\n#\n# This script will produce the following errormessage from tar:\n#\n#   tar: newdir/innerdir/innerfile: file changed as we read it\n\n# create dirs\nrm -rf nfstest\nmkdir -p nfstest/dir/innerdir\n\n# create files (should not be empty)\necho \"Hello World!\" \u003enfstest/dir/file\necho \"Hello World!\" \u003enfstest/dir/innerdir/innerfile\n\n# problem only happens if we sleep before chmod\nsleep 1\n\n# change file modes\nchmod -R a+r nfstest\n\n# rename dir\nmv nfstest/dir nfstest/newdir\n\n# tar it\ntar -cf nfstest/nfstest.tar -C nfstest newdir\n\n# restore old dir name\nmv nfstest/newdir nfstest/dir\n--------------------------------------------------------\n\nWhat happens:\n\nThe \u0027chmod -R\u0027 does a readdir_plus in each directory and the results\nget cached in the page cache.  It then updates the ctime on each file\nby one second.  When this happens, the post-op attributes are used to\nupdate the ctime stored on the client to match the value in the kernel.\n\nThe \u0027mv\u0027 calls shrink_dcache_parent on the directory tree which\nflushes all the dentries (so a new lookup will be required) but\ndoesn\u0027t flush the inodes or pagecache.\n\nThe \u0027tar\u0027 does a readdir on each directory, but (in the case of\n\u0027innerdir\u0027 at least) satisfies it from the pagecache and uses the\nREADDIRPLUS data to update all the inodes.  In the case of\n\u0027innerdir/innerfile\u0027, the ctime is out of date.\n\n\u0027tar\u0027 then calls \u0027lstat\u0027 on innerdir/innerfile getting an old ctime.\nIt then opens the file (triggering a GETATTR), reads the content, and\nthen calls fstat to see if anything has changed.  It finds that ctime\nhas changed and so complains.\n\nThe problem seems to be that the cache readdirplus info is kept around\nfor too long.\n\nMy patch below discards pagecache data for directories when\ndentry_iput is called on them.  This effectively removes the symptom\nwhich convinces me that I correctly understand the problem.  However\nI\u0027m not convinced that is a proper solution, as there could easily be\nother races that trigger the same problem without being affected by\nthis \u0027fix\u0027.\n\nOne possibility would be to require that readdirplus pagecache data be\nonly used *once* to instantiate an inode.  Somehow it should then be\ninvalidated so that if the dentry subsequently disappears, it will\ncause a new request to the server to fill in the stat data.\n\nAnother possibility is to compare the cache_change_attribute on the\ninode with something similar for the readdirplus info and reject the\ninfo from readdirplus if it is too old.\n\nI haven\u0027t tried to implement these and would value other opinions\nbefore I do.\n\nThanks,\nNeilBrown\n\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f4eab7e7c1d90dcd8ca4d7c064ee78dfbb345eb",
      "tree": "06c431bedac14bd907e616c390743795abfb1622",
      "parents": [
        "74dd34e6e8bb127ff4c182423154b294729b663b"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 16 09:35:27 2007 +1000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:18 2007 -0700"
      },
      "message": "NFS: Set meaningful value for fattr-\u003etime_start in readdirplus results.\n\nDon\u0027t use uninitialsed value for fattr-\u003etime_start in readdirplus results.\n\nThe \u0027fattr\u0027 structure filled in by nfs3_decode_direct does not get a\nvalue for -\u003etime_start set.\nThus if an entry is for an inode that we already have in cache,\nwhen nfs_readdir_lookup calls nfs_fhget, it will call nfs_refresh_inode\nand may update the inode with out-of-date information.\n\nDirectories are read a page at a time, so each page could have a\ndifferent timestamp that \"should\" be used to set the time_start for\nthe fattr for info in that page.  However storing the timestamp per\npage is awkward.  (We could stick in the first 4 bytes and only read 4092\nbytes, but that is a bigger code change than I am interested it).\n\nThis patch ignores the readdir_plus attributes if a readdir finds the\ninformation already in cache, and otherwise sets -\u003etime_start to the time\nthe readdir request was sent to the server.\n\nIt might be nice to store - in the directory inode - the time stamp for\nthe earliest readdir request that is still in the page cache, so that we\ndon\u0027t ignore attribute data that we don\u0027t have to.  This patch doesn\u0027t do\nthat.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "74dd34e6e8bb127ff4c182423154b294729b663b",
      "tree": "6e5aef4263a4026942efd03fc2ea974a419153b1",
      "parents": [
        "00a6e7bbf990e3a5e59a9a1e6a68e99c94fe001c"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "steved@redhat.com",
        "time": "Sat Apr 14 17:01:15 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:16 2007 -0700"
      },
      "message": "NFS: Added support to turn off the NFSv3 READDIRPLUS RPC.\n\nREADDIRPLUS can be a performance hindrance when the client is working with\nlarge directories. In addition, some servers still have bugs in their\nimplementations (e.g. Tru64 returns wrong values for the fsid).\n\nAdd a mount flag to enable users to turn it off at mount time following the\nimplementation in Apple\u0027s NFS client.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "df8b172a8880521396d2048ecef7e75df43b5bc4",
      "tree": "77d97db2de52d2286632111fb203a43246a7930d",
      "parents": [
        "260800142071a3a33e4523c7578358c6e29c0f53"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 29 16:48:22 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:14 2007 -0700"
      },
      "message": "NFS: switch NFSROOT to use new rpcbind client\n\nIt is arguable whether NFSROOT will support IPv6, and thus whether\nrpcb_getport_external needs to support rpcbind versions greater than 2.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2bea90d43a050bbc4021d44e59beb34f384438db",
      "tree": "2dd3f15bd9df537166a82777b0c95243b90b17e1",
      "parents": [
        "511d2e8855a065c8251d0c140ebc353854f1929e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 29 16:47:53 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:10 2007 -0700"
      },
      "message": "SUNRPC: RPC buffer size estimates are too large\n\nThe RPC buffer size estimation logic in net/sunrpc/clnt.c always\nsignificantly overestimates the requirements for the buffer size.\nA little instrumentation demonstrated that in fact rpc_malloc was never\nallocating the buffer from the mempool, but almost always called kmalloc.\n\nTo compute the size of the RPC buffer more precisely, split p_bufsiz into\ntwo fields; one for the argument size, and one for the result size.\n\nThen, compute the sum of the exact call and reply header sizes, and split\nthe RPC buffer precisely between the two.  That should keep almost all RPC\nbuffers within the 2KiB buffer mempool limit.\n\nAnd, we can finally be rid of RPC_SLACK_SPACE!\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ca52fec152282ef73e5e882b847b36b1febbb1c6",
      "tree": "8eb28f127a04b83af3abdfbf3d97c630e1668986",
      "parents": [
        "724c439c204b12a3537b71289fb4c0a42c3aa566"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 17 17:22:13 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:09 2007 -0700"
      },
      "message": "NFS: Use pgoff_t in structures and functions that pass page cache offsets\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "724c439c204b12a3537b71289fb4c0a42c3aa566",
      "tree": "d167ca161a3420c81759275b5ab3cc3611bd1db3",
      "parents": [
        "8d5658c949e6d89edc579a1f112aeee3bc232a8e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 17 17:22:13 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:08 2007 -0700"
      },
      "message": "NFS: Clean up nfs_sync_mapping_wait()\n\nIt has no business touching wbc-\u003epages_skipped.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8d5658c949e6d89edc579a1f112aeee3bc232a8e",
      "tree": "f206d3f6809eeb0ca23c1999cf79aa294968b113",
      "parents": [
        "c63c7b051395368573779c8309aa5c990dcf2f96"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 10 09:26:35 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:07 2007 -0700"
      },
      "message": "NFS: Fix a buffer overflow in the allocation of struct nfs_read/writedata\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c63c7b051395368573779c8309aa5c990dcf2f96",
      "tree": "db54090eef99349d15b95fcd8c2620a2403d8db8",
      "parents": [
        "8b09bee3083897e375bd0bf9d60f48daedfab3e0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 02 19:29:52 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:06 2007 -0700"
      },
      "message": "NFS: Fix a race when doing NFS write coalescing\n\nCurrently we do write coalescing in a very inefficient manner: one pass in\ngeneric_writepages() in order to lock the pages for writing, then one pass\nin nfs_flush_mapping() and/or nfs_sync_mapping_wait() in order to gather\nthe locked pages for coalescing into RPC requests of size \"wsize\".\n\nIn fact, it turns out there is actually a deadlock possible here since we\nonly start I/O on the second pass. If the user signals the process while\nwe\u0027re in nfs_sync_mapping_wait(), for instance, then we may exit before\nstarting I/O on all the requests that have been queued up.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b09bee3083897e375bd0bf9d60f48daedfab3e0",
      "tree": "5122ee611fc46799660db63442107e5677234266",
      "parents": [
        "bcb71bba7e64f0442d0ca339d7d3117a7060589f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 02 18:48:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:05 2007 -0700"
      },
      "message": "NFS: Cleanup for nfs_readpages()\n\nDo the coalescing of read requests into block sized requests at start of\nI/O as we scan through the pages instead of going through a second pass.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bcb71bba7e64f0442d0ca339d7d3117a7060589f",
      "tree": "072e9a28395eee87e539a48553b20fa9cb768e94",
      "parents": [
        "d8a5ad75cc4d577987964e37a4c43b1c648c201e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 02 18:48:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:04 2007 -0700"
      },
      "message": "NFS: Another cleanup of the read/write request coalescing code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d8a5ad75cc4d577987964e37a4c43b1c648c201e",
      "tree": "91604bf17f7a81cc60a214426c7ddca89bf4faee",
      "parents": [
        "91e59c368c6ba5eed0369a085c42c9f270b97aa8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 02 18:48:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:04 2007 -0700"
      },
      "message": "NFS: Cleanup the coalescing code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "91e59c368c6ba5eed0369a085c42c9f270b97aa8",
      "tree": "172975fb2d21695e1d4d9b4146ac033bcfee872b",
      "parents": [
        "1a0ba9ae485c5fd17d0bff2f14d9dd75b8985593"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 06 13:12:46 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:03 2007 -0700"
      },
      "message": "NFS: Don\u0027t wait for congestion in nfs_update_request()\n\nIt is redundant, and will interfere with the call to\nbalance_dirty_pages_ratelimited_nr in generic_file_write().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1a0ba9ae485c5fd17d0bff2f14d9dd75b8985593",
      "tree": "7ff4d7658ce51b33a23a127dbe848bc076cdf597",
      "parents": [
        "d585158b608248a6ba8ae75e234672e048d3fde9"
      ],
      "author": {
        "name": "Amnon Aaronsohn",
        "email": "amnonaar@gmail.com",
        "time": "Mon Apr 09 22:05:26 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:02 2007 -0700"
      },
      "message": "NFS: statfs error-handling fix\n\nThe nfs statfs function returns a success code on error, and fills the\noutput buffer with invalid values.  The attached patch makes it return a\ncorrect error code instead.\n\nSigned-off-by: Amnon Aaronsohn \u003camnonaar@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n (Modified patch to reinstate the dprintk())\n"
    },
    {
      "commit": "d585158b608248a6ba8ae75e234672e048d3fde9",
      "tree": "2e3e94f5887346eabc61ac0063b849461f98bd1a",
      "parents": [
        "dc87c3985e9b442c60994308a96f887579addc39"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:02 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:02 2007 -0700"
      },
      "message": "NFS: Fix nfs_set_page_dirty()\n\nBe more careful about testing page-\u003emapping.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2b82f190c81bf1524447c021df4e9ce8ef379bd5",
      "tree": "3f4ebb8c0379715fe38897474856bdbab5750250",
      "parents": [
        "612c9384fd0486686699f7d49b774f0c7a79c511"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 20 16:12:50 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Apr 20 22:56:30 2007 -0700"
      },
      "message": "NFS: Fix race in nfs_set_page_dirty\n\nProtect nfs_set_page_dirty() against races with nfs_inode_add_request.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "612c9384fd0486686699f7d49b774f0c7a79c511",
      "tree": "443192b69689488f0be8ca72f3e8f73db0a53988",
      "parents": [
        "6d677e3504cd173b2ff7fc393ee4241b3c0f92a6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 20 16:12:45 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Apr 20 22:56:29 2007 -0700"
      },
      "message": "NFS: Fix the \u0027desynchronized value of nfs_i.ncommit\u0027 error\n\nRedirtying a request that is already marked for commit will screw up the\naccounting for NR_UNSTABLE_NFS as well as nfs_i.ncommit.\nEnsure that all requests on the commit queue are labelled with the\nPG_NEED_COMMIT flag, and avoid moving them onto the dirty list inside\nnfs_page_mark_flush().\n\nAlso inline nfs_mark_request_dirty() into nfs_page_mark_flush() for\natomicity reasons. Avoid dropping the spinlock until we\u0027re done marking the\nrequest in the radix tree and have added it to the -\u003edirty list.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d677e3504cd173b2ff7fc393ee4241b3c0f92a6",
      "tree": "002ca651de6b2e858072e8060ce4a9943263a5e8",
      "parents": [
        "8e821cad12e80cd1a8a3fbadf91f62f17f32549e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 20 16:12:40 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Apr 20 22:56:29 2007 -0700"
      },
      "message": "NFS: Don\u0027t clear PG_writeback until after we\u0027ve processed unstable writes\n\nEnsure that we don\u0027t release the PG_writeback lock until after the page has\neither been redirtied, or queued on the nfs_inode \u0027commit\u0027 list.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e821cad12e80cd1a8a3fbadf91f62f17f32549e",
      "tree": "7a3755731152198410008921b3a2b8e7015e5f0e",
      "parents": [
        "7ab77e03c1f665d5dee78f1248fffd11fa0c5154"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 20 16:12:34 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Apr 20 22:56:29 2007 -0700"
      },
      "message": "NFS: clean up the unstable write code\n\nGet rid of the inlined #ifdefs.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb4cac10d9f7b006da842e2d37414d13e1333781",
      "tree": "8dbb82c4b1b4ef0c499711adbe0f4ff6efe4f5e2",
      "parents": [
        "0492c371372ef5eac3a952509391dea231b0de89"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 15 16:21:49 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Apr 15 16:48:11 2007 -0700"
      },
      "message": "NFS: Fix a list corruption problem\n\nWe must remove the request from whatever list it is currently on before we\ncan add it to the dirty list.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a6d41b32a17ca902ef50fdfa170d7f23264bad5",
      "tree": "1a380f2e7fe7858da3dfb53ec85e3d4b100c948f",
      "parents": [
        "60fa3f769f7651a60125a0f44e3ffe3246d7cf39"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 14 19:10:12 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Apr 14 21:46:48 2007 -0700"
      },
      "message": "NFS: Ensure PG_writeback is cleared when writeback fails\n\nIf the writebacks are cancelled via nfs_cancel_dirty_list, or due to the\nmemory allocation failing in nfs_flush_one/nfs_flush_multi, then we must\nensure that the PG_writeback flag is cleared.\n\nAlso ensure that we actually own the PG_writeback flag whenever we\nschedule a new writeback by making nfs_set_page_writeback() return the\nvalue of test_set_page_writeback().\nThe PG_writeback page flag ends up replacing the functionality of the\nPG_FLUSHING nfs_page flag, so we rip that out too.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60fa3f769f7651a60125a0f44e3ffe3246d7cf39",
      "tree": "1acbd0749726d8bddafab619e173874af0153c84",
      "parents": [
        "e1552e199857109d4b25b9163eff4646726eee3d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 14 19:11:52 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Apr 14 21:46:48 2007 -0700"
      },
      "message": "NFS: Fix two bugs in the O_DIRECT write code\n\nDo not flag an error if the COMMIT call fails and we decide to resend the\nwrites. Let the resend flag the error if it fails.\n\nIf a write has failed, then nfs_direct_write_result should not attempt to\nsend a commit. It should just exit asap and return the error to the user.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1552e199857109d4b25b9163eff4646726eee3d",
      "tree": "344af8502076a414c7b579bc33e0c98f21a20b2c",
      "parents": [
        "c9c57929d23e44f258d1b6e7f089e72c85f0bd1c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 14 19:07:28 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Apr 14 21:46:47 2007 -0700"
      },
      "message": "NFS: Fix an Oops in nfs_setattr()\n\nIt looks like nfs_setattr() and nfs_rename() also need to test whether the\ntarget is a regular file before calling nfs_wb_all()...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "634707388baa440d9c9d082cfc4c950500c8952b",
      "tree": "0d3075c34a69a2d4c5c3d5682fd6a0d26bff28e9",
      "parents": [
        "89a09141df6ac1c3821fbe44ca8384eb37692965"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Fri Mar 16 13:38:28 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:06 2007 -0700"
      },
      "message": "[PATCH] nfs: nfs_getattr() can\u0027t call nfs_sync_mapping_range() for non-regular files\n\nLooks like we need a check in nfs_getattr() for a regular file. It makes\nno sense to call nfs_sync_mapping_range() on anything else. I think that\nshould fix your problem: it will stop the NFS client from interfering\nwith dirty pages on that inode\u0027s mapping.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Olof Johansson \u003colof@lixom.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89a09141df6ac1c3821fbe44ca8384eb37692965",
      "tree": "ccb21055fca86ac2657b3262ac37eb3e5c44bea0",
      "parents": [
        "b74a2f0913694556a027795d2954d30523fac4c5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Mar 16 13:38:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:05 2007 -0700"
      },
      "message": "[PATCH] nfs: fix congestion control\n\nThe current NFS client congestion logic is severly broken, it marks the\nbacking device congested during each nfs_writepages() call but doesn\u0027t\nmirror this in nfs_writepage() which makes for deadlocks.  Also it\nimplements its own waitqueue.\n\nReplace this by a more regular congestion implementation that puts a cap on\nthe number of active writeback pages and uses the bdi congestion waitqueue.\n\nAlso always use an interruptible wait since it makes sense to be able to\nSIGKILL the process even for mounts without \u0027intr\u0027.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b4d414714f0d2f922d39424b0c5c82ad900a381",
      "tree": "5079ec59a5622c9cacfe0fce484ba2c4626c406f",
      "parents": [
        "ae836810263509ff7a3c2c021754ce6f66b3fab6"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 14 00:34:09 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:59 2007 -0800"
      },
      "message": "[PATCH] sysctl: remove insert_at_head from register_sysctl\n\nThe semantic effect of insert_at_head is that it would allow new registered\nsysctl entries to override existing sysctl entries of the same name.  Which is\npain for caching and the proc interface never implemented.\n\nI have done an audit and discovered that none of the current users of\nregister_sysctl care as (excpet for directories) they do not register\nduplicate sysctl entries.\n\nSo this patch simply removes the support for overriding existing entries in\nthe sys_sysctl interface since no one uses it or cares and it makes future\nenhancments harder.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Corey Minyard \u003cminyard@acm.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9bc125caf592b7d081021f32ce5b717efdf70c8",
      "tree": "263b7066ba22ddce21db610c0300f6eaac6f2064",
      "parents": [
        "43d78ef2ba5bec26d0315859e8324bfc0be23766",
        "ec2f9d1331f658433411c58077871e1eef4ee1b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:43:25 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:43:25 2007 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tnet/sunrpc/auth_gss/gss_krb5_crypto.c\n\tnet/sunrpc/auth_gss/gss_spkm3_token.c\n\tnet/sunrpc/clnt.c\n\nMerge with mainline and fix conflicts.\n"
    },
    {
      "commit": "43d78ef2ba5bec26d0315859e8324bfc0be23766",
      "tree": "6ea576e0a20a11745c7a45b2a15dd855a45b655a",
      "parents": [
        "a301b777714087ea1d63dbec0173a13d416cd7a9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Feb 06 18:26:11 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:40:45 2007 -0800"
      },
      "message": "NFS: disconnect before retrying NFSv4 requests over TCP\n\nRFC3530 section 3.1.1 states an NFSv4 client MUST NOT send a request\ntwice on the same connection unless it is the NULL procedure.  Section\n3.1.1 suggests that the client should disconnect and reconnect if it\nwants to retry a request.\n\nImplement this by adding an rpc_clnt flag that an ULP can use to\nspecify that the underlying transport should be disconnected on a\nmajor timeout.  The NFSv4 client asserts this new flag, and requests\nno retries after a minor retransmit timeout.\n\nNote that disconnecting on a retransmit is in general not safe to do\nif the RPC client does not reuse the TCP port number when reconnecting.\n\nSee http://bugzilla.linux-nfs.org/show_bug.cgi?id\u003d6\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a301b777714087ea1d63dbec0173a13d416cd7a9",
      "tree": "ccf5e747d0411c7af15279c66389ad4e1155ef04",
      "parents": [
        "b0c4fddca2bc3967381b728732a8850de35e1b20"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 06 11:07:15 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:40:38 2007 -0800"
      },
      "message": "NFS: Don\u0027t use ClearPageUptodate() when writeback fails\n\nClearPageUptodate() will just cause races here. What we really want to do\nis to invalidate the page cache.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b0c4fddca2bc3967381b728732a8850de35e1b20",
      "tree": "20c84b8927e448ab57f5536a4369e6f787ba316e",
      "parents": [
        "3e7d950a528454ad749a264feef3c8bad3faa108"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 05 14:44:22 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:40:30 2007 -0800"
      },
      "message": "NFS: Cleanup - avoid rereading \u0027jiffies\u0027 more than once in the same routine\n\nMicro-optimisations for nfs_fhget() and nfs_wcc_update_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3e7d950a528454ad749a264feef3c8bad3faa108",
      "tree": "f78795bde4128ca1da658e6cc3f4216f5c999276",
      "parents": [
        "ebf4d8ec02d8a13e1cbbda6fe746f80f3a4ca773"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 05 14:26:28 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:40:22 2007 -0800"
      },
      "message": "NFS: Fix a wraparound issue with nfsi-\u003ecache_change_attribute\n\nFix wraparound issue with nfsi-\u003ecache_change_attribute. If it is found\nto lie in the future, then update it to lie in the past. Patch based on\na suggestion by Neil Brown.\n\n..and minor micro-optimisation: avoid reading \u0027jiffies\u0027 more than once in\nnfs_update_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92e1d5be91a0e3ffa5c4697eeb09b2aa22792122",
      "tree": "4eb22a9f6c38e9f4cc2a5100cd6659b0af08b7ae",
      "parents": [
        "754661f143e70d66eae6c48532ca245aa05dec0e"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 2\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00977a59b951207d38380c75f03a36829950265c",
      "tree": "26933feafebffca95df02c19df03f5e56aada47e",
      "parents": [
        "d54b1fdb1d9f82e375a299e22bd366aad52d4c34"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:34 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:45 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 6\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5d5dfbd59577aed72263f22e28d3eaf98e1c6e5",
      "tree": "9ef320c6ff4f61bffb25c0452570d5f76ab7769c",
      "parents": [
        "77f1f67a1a56defa210c3d8857f3e5eee3990a99"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Feb 12 00:53:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:36 2007 -0800"
      },
      "message": "[PATCH] include/linux/nfsd/const.h: remove NFS_SUPER_MAGIC\n\nNFS_SUPER_MAGIC is already defined in include/linux/magic.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27459f0940e16c68e080f5fc7e85aa9eb3f74528",
      "tree": "f13cd1f2005dda2b6115e2afbc49e1271b0d374b",
      "parents": [
        "2442222283918c2d1c20ae651d95fe168757938b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 12 00:53:34 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:36 2007 -0800"
      },
      "message": "[PATCH] knfsd: SUNRPC: Provide room in svc_rqst for larger addresses\n\nExpand the rq_addr field to allow it to contain larger addresses.\n\nSpecifically, we replace a \u0027sockaddr_in\u0027 with a \u0027sockaddr_storage\u0027, then\neverywhere the \u0027sockaddr_in\u0027 was referenced, we use instead an accessor\nfunction (svc_addr_in) which safely casts the _storage to _in.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad06e4bd62351bc569cca0f25d68c58dbd298146",
      "tree": "82024c01e61de32af17d3b67eac0bb93138a2954",
      "parents": [
        "1ba951053f07187f6e77be664a4b6f8bf0ba7ae4"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 12 00:53:32 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:35 2007 -0800"
      },
      "message": "[PATCH] knfsd: SUNRPC: Add a function to format the address in an svc_rqst for printing\n\nThere are loads of places where the RPC server assumes that the rq_addr fields\ncontains an IPv4 address.  Top among these are error and debugging messages\nthat display the server\u0027s IP address.\n\nLet\u0027s refactor the address printing into a separate function that\u0027s smart\nenough to figure out the difference between IPv4 and IPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "482fb94e1b0c2efe8258334aa2a68d4f4a91de9c",
      "tree": "84353b34bb5ea02df98b598fff037cf1da20d6b0",
      "parents": [
        "6b174337e5126de834a971d3edc3681bbfa45e2c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Feb 12 00:53:29 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:35 2007 -0800"
      },
      "message": "[PATCH] knfsd: SUNRPC: allow creating an RPC service without registering with portmapper\n\nSometimes we need to create an RPC service but not register it with the local\nportmapper.  NFSv4 delegation callback, for example.\n\nChange the svc_makesock() API to allow optionally creating temporary or\npermanent sockets, optionally registering with the local portmapper, and make\nit return the ephemeral port of the new socket.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "588a700b269b785b19d5d03084bee5e1b74c7758",
      "tree": "0b470b4eec5c081c46002b6307852ab3647e9c7f",
      "parents": [
        "1d21632d366b33b3adf4fa26144edf3162a9715d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 02 17:41:53 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:10 2007 -0800"
      },
      "message": "NFSv4: /proc/mounts displays the wrong server name for referrals\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a3f565b1e530a756472401835107d08fd291f242",
      "tree": "84a15e4810f63689e3f85bbbc6497ee41934705e",
      "parents": [
        "4dc2eaecd4cf0687727e418540bccf956a62ebcf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jan 31 12:14:01 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:09 2007 -0800"
      },
      "message": "NFS: fix print format for tk_pid\n\nThe tk_pid field is an unsigned short.  The proper print format specifier for\nthat type is %5u, not %4d.\n\nAlso clean up some miscellaneous print formatting nits.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e148582e10a2c1a23dfc09210df4a18bc6cca4e9",
      "tree": "a6a1aac3b2dda50dc34e41a3e78afee4e4bae58e",
      "parents": [
        "a6a352e93dfa78db8903f0e3610abb76efbf7fc9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 13 16:43:13 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:08 2007 -0800"
      },
      "message": "NFSv4: Add lockdep checks to nfs4_wait_clnt_recover()\n\nAttempt to detect deadlocks due to caller holding locks on clp-\u003ecl_sem\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a6a352e93dfa78db8903f0e3610abb76efbf7fc9",
      "tree": "841b538d544444ab6f65102d5c444f72b4ecd869",
      "parents": [
        "7c85d9007d05436e71d2b805b96c1e36a8193bd4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 13 16:43:06 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:08 2007 -0800"
      },
      "message": "NFSv4: Don\u0027t start state recovery in nfs4_close_done()\n\nWe might not even have any open files at this point...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c85d9007d05436e71d2b805b96c1e36a8193bd4",
      "tree": "916565d0ce3905073cd877611580fabf23ea51fe",
      "parents": [
        "d30c8348a4ba292a09addd122de2f3189c21a7ff"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 13 15:23:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:07 2007 -0800"
      },
      "message": "NFS: Fixup some outdated comments...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d30c8348a4ba292a09addd122de2f3189c21a7ff",
      "tree": "4aa5bf398902741643c8e6e88d5676ca02b5dfa2",
      "parents": [
        "f40313ac39fedca519c36fdc454acf2632e641da"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 13 15:23:47 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:07 2007 -0800"
      },
      "message": "NFS: nfs_writepages() cleanup\n\nStrip out the call to nfs_commit_inode(), and allow that to be done by\nnfs_write_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f40313ac39fedca519c36fdc454acf2632e641da",
      "tree": "355656191392ce44cb1bdb4d415134fd65b2b196",
      "parents": [
        "02241bc47e8961768de83d855accd0dcad1df045"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 13 02:28:08 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:07 2007 -0800"
      },
      "message": "NFS: Micro-optimisation for nfs_wb_page()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "02241bc47e8961768de83d855accd0dcad1df045",
      "tree": "c6d3c4894c4fe2d73816b8c123abbd365072369d",
      "parents": [
        "8e0969f0451eaf7cf32f2ec3946196d8d0b1cb2c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 13 02:28:07 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:06 2007 -0800"
      },
      "message": "NFS: Ensure that -\u003ewritepage() uses flush_stable() when reclaiming pages\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8e0969f0451eaf7cf32f2ec3946196d8d0b1cb2c",
      "tree": "66f3e1ca0761d77e21ac3d24bacc1574189cfc64",
      "parents": [
        "c228fd3aeef55637354167faead74c579d5da28b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 13 15:23:44 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:06 2007 -0800"
      },
      "message": "NFS: Remove nfs_readpage_sync()\n\nIt makes no sense to maintain 2 parallel systems for reading in pages.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c228fd3aeef55637354167faead74c579d5da28b",
      "tree": "44abf437f19a3f182e00a42de6cf853fef8cc0f6",
      "parents": [
        "faebf4e2bb0efad9dda396ea13d5c6ad15d7d7fb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 13 02:28:11 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:06 2007 -0800"
      },
      "message": "NFSv4: Cleanups for fs_locations code.\n\nStart long arduous project...  What the hell is\n\n\tstruct dentry \u003d {};\n\nall about?\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "faebf4e2bb0efad9dda396ea13d5c6ad15d7d7fb",
      "tree": "7e0d0af02aa188b508af18c59dddbec81ecc5da7",
      "parents": [
        "c79ba787c11e767ffaf8d723923afda99ba6c63c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 13 02:28:11 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:05 2007 -0800"
      },
      "message": "NFSv4: Don\u0027t require that NFSv4 mount paths begin with \u0027/\u0027\n\nAddresses the regression noted in\n  http://bugzilla.linux-nfs.org/show_bug.cgi?id\u003d134\n\nAlso mark a couple of other regressions as requiring fixing.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c79ba787c11e767ffaf8d723923afda99ba6c63c",
      "tree": "746cd4018ab4dd5b28368b8e9a4d4c23c8e5b7b0",
      "parents": [
        "ef75c7974b383769ae5741cf930b8aa4dcaef395"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 31 08:16:24 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:05 2007 -0800"
      },
      "message": "NFS: Dont clobber more uptodate values in nfs_set_verifier()\n\nnfs_lookup_revalidate and friends are not serialised, so it is currently\nquite possible for the dentry to be revalidated, and then have the\nupdated verifier replaced with an older value by another process.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ef75c7974b383769ae5741cf930b8aa4dcaef395",
      "tree": "4ed78762d171e41badb94c1bca93ae0be3e5af16",
      "parents": [
        "df1d5d23d3a1a713c69b0f9ec67c59aeca3ce6b3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 16 10:09:44 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:04 2007 -0800"
      },
      "message": "NFS: Also use readdir info to revalidate positive dentries\n\nIf the fileid of the cached dentry fails to match that returned by\nthe readdir call, then we should also d_drop. Try to take into account the\nfact that on NFSv4, readdir may return the \"mounted_on_fileid\" by looking\nfor submounts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "df1d5d23d3a1a713c69b0f9ec67c59aeca3ce6b3",
      "tree": "2d5c3d7ba82c3f7010089414db2f0563ff6bd3e0",
      "parents": [
        "ccfeb506231348a3c60ab0fdb5753a574653e3c0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 15 13:56:29 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:04 2007 -0800"
      },
      "message": "NFS: Fix a readdir/lookup inefficiency.\n\nMake sure that nfs_readdir_lookup() handles negative dentries correctly.\nIf d_lookup() returns a negative dentry, then we need to d_drop() that\nsince readdir shows that it should be positive.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ccfeb506231348a3c60ab0fdb5753a574653e3c0",
      "tree": "17e2261c396d927e389c7f018008e5537bc27ddb",
      "parents": [
        "ab91f264cfbafd079dcb1bd02e9803c2dd65de19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 13 02:28:12 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:04 2007 -0800"
      },
      "message": "NFS: Fix up \"rm -rf\"...\n\nWhen a file is being scheduled for deletion by means of the sillyrename\nmechanism, it makes sense to start out writeback of the dirty data as\nsoon as possible in order to ensure that the delete can occur. Examples of\ncases where this is an issue include \"rm -rf\", which will busy-wait until\nthe file is closed, and the sillyrename completes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ab91f264cfbafd079dcb1bd02e9803c2dd65de19",
      "tree": "86fd86c01f1bd962e75fa98a4f69cbe3937a5ab5",
      "parents": [
        "f2d0d85e58099d518cb50b1c95fc1fc62bbce1b8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 02 14:47:17 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:03 2007 -0800"
      },
      "message": "NFSv4: Fix NFS4_enc_server_caps_sz/NFS4_dec_server_caps_sz\n\nInsert missing encode_putfh_maxsz/decode_putfh_maxsz\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f2d0d85e58099d518cb50b1c95fc1fc62bbce1b8",
      "tree": "b8b14f9f4d803b90c2d8a96faef082f1b6e257be",
      "parents": [
        "2efef837fb84f78cee7439804cb3722bffc64e75"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 02 14:46:09 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:03 2007 -0800"
      },
      "message": "NFSv4: Fix Oops in nfs4_create_referral_server\n\nThe filehandle that is passed into nfs4_create_referral_server is\nnot initialised. The expectation is that nfs4_create_referral_server will\ninitialise it, and return it to the caller.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "46bae1a9a767f3ae8e636d96f9b95703df34b398",
      "tree": "b07f821219bfb9ea4c17180bf6635cf14bdba9b3",
      "parents": [
        "ec268be36e79d99443efc4be3a617d6efc6f719b"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Jan 30 14:36:01 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 16:01:35 2007 -0800"
      },
      "message": "[PATCH] Remove warning: VFS is out of sync with lock manager\n\nBut keep it as a dprintk\n\nThe message can be generated in a quite normal situation:\n If a \u0027lock\u0027 request is interrupted, then the lock client needs to\n  record that the server has the lock, incase it does.\n When we come the unlock, the server might say it doesn\u0027t, even\n  though we think it does (or might) and this generates the message.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "717d44e849219781ced028a40fcc59d3e1f49e4c",
      "tree": "aa34a9b84377d18ff58901cc342b84c7e8b81dca",
      "parents": [
        "bde8f00ce64d9824a4f227c8594e335a1a10d044"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 24 11:54:55 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jan 24 12:31:06 2007 -0800"
      },
      "message": "[PATCH] NFS: Fix races in nfs_revalidate_mapping()\n\nPrevent the call to invalidate_inode_pages2() from racing with file writes\nby taking the inode-\u003ei_mutex across the page cache flush and invalidate.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3db7691e9f3dff3289f64e3d98583e28afe03db",
      "tree": "e05542d8d8bb545545c5b535381a8c1fcb369a03",
      "parents": [
        "07031e14c1127fc7e1a5b98dfcc59f434e025104"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 10 23:15:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] NFS: Fix race in nfs_release_page()\n\n    NFS: Fix race in nfs_release_page()\n\n    invalidate_inode_pages2() may find the dirty bit has been set on a page\n    owing to the fact that the page may still be mapped after it was locked.\n    Only after the call to unmap_mapping_range() are we sure that the page\n    can no longer be dirtied.\n    In order to fix this, NFS has hooked the releasepage() method and tries\n    to write the page out between the call to unmap_mapping_range() and the\n    call to remove_mapping(). This, however leads to deadlocks in the page\n    reclaim code, where the page may be locked without holding a reference\n    to the inode or dentry.\n\n    Fix is to add a new address_space_operation, launder_page(), which will\n    attempt to write out a dirty page without releasing the page lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\n    Also, the bare SetPageDirty() can skew all sort of accounting leading to\n    other nasties.\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5cbded585d129d0226cb48ac4202b253c781be26",
      "tree": "fb24edc194a57ee81a3bf8a4dd8a95030dd0ad22",
      "parents": [
        "0743b86800cf1dfbf96df4a438938127bbe4476c"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed Dec 13 00:35:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:58 2006 -0800"
      },
      "message": "[PATCH] getting rid of all casts of k[cmz]alloc() calls\n\nRun this:\n\n\t#!/bin/sh\n\tfor f in $(grep -Erl \"\\([^\\)]*\\) *k[cmz]alloc\" *) ; do\n\t  echo \"De-casting $f...\"\n\t  perl -pi -e \"s/ ?\u003d ?\\([^\\)]*\\) *(k[cmz]alloc) *\\(/ \u003d \\1\\(/\" $f\n\tdone\n\nAnd then go through and reinstate those cases where code is casting pointers\nto non-pointers.\n\nAnd then drop a few hunks which conflicted with outstanding work.\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e, Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b3286ed1169d74fea401367d6d4d6c6ec758a81",
      "tree": "faf5beddb797875bb92855f8606735478267959a",
      "parents": [
        "1ec320afdc9552c92191d5f89fcd1ebe588334ca"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Fri Dec 08 02:37:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] rename struct namespace to struct mnt_namespace\n\nRename \u0027struct namespace\u0027 to \u0027struct mnt_namespace\u0027 to avoid confusion with\nother namespaces being developped for the containers : pid, uts, ipc, etc.\n\u0027namespace\u0027 variables and attributes are also renamed to \u0027mnt_ns\u0027\n\nSigned-off-by: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01cce933d8b524d9312f5098c70fa1b6ac190572",
      "tree": "7601e02e874a6eb44faca3cdf06664c7377ac687",
      "parents": [
        "2485822d51f8b338d289abe00eb7ce5249794a08"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] nfs: change uses of f_{dentry,vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the nfs\nclient code.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "21b4e736922f546e0f1aa7b9d6c442f309a2444a",
      "tree": "e1be8645297f8ebe87445251743ebcc52081a20d",
      "parents": [
        "34161db6b14d984fb9b06c735b7b42f8803f6851",
        "68380b581383c028830f79ec2670f4a193854aa6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 16:35:17 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 16:35:17 2006 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/ into merge_linus\n"
    },
    {
      "commit": "34161db6b14d984fb9b06c735b7b42f8803f6851",
      "tree": "99656278b6697f1cde5b05894b7c0ee22c63a00e",
      "parents": [
        "5847e1f4d058677c5e46dc6c3e3c70e8855ea3ba",
        "620034c84d1d939717bdfbe02c51a3fee43541c3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 15:48:15 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 15:48:15 2006 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/ into merge_linus\n\nConflicts:\n\n\tinclude/linux/sunrpc/xprt.h\n\tnet/sunrpc/xprtsock.c\nFix up conflicts with the workqueue changes.\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e6b4f8da3a88457148038bc952043e99a7fdba64",
      "tree": "858c2a0e04b442395e7ecd0f60c8d2a3304b83e1",
      "parents": [
        "55acbda0965ca0a29b0ca276e7d17a55edc11d1b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_NOFS\n\nSLAB_NOFS is an alias of GFP_NOFS.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a18030445fd4dd20e2248007b5d1cf0b5d89c69d",
      "tree": "0b41749bcfc185a6adccd124b53a2037f9fb1f26",
      "parents": [
        "9cf85e0a243b56f4ef8439a1e6430307fd9dcda6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 05 00:45:19 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:42 2006 -0500"
      },
      "message": "NFS: Clean up calls to mark_inode_dirty() part 2\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9cf85e0a243b56f4ef8439a1e6430307fd9dcda6",
      "tree": "c07fa0bb952827d76e556ac60a9310638e7a5d4a",
      "parents": [
        "3925675cb37cc9c3fd1d3f56ce0fa729f995f863"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 05 00:36:56 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:41 2006 -0500"
      },
      "message": "NFS: Fix up writeback_control-\u003enr_to_write accounting\n\nWe\u0027re really accounting for the same page twice now: once in\ngeneric_writepages(), and once in nfs_scan_dirty().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3925675cb37cc9c3fd1d3f56ce0fa729f995f863",
      "tree": "9e4ab16c91ab7d679246ade359a00803665ba391",
      "parents": [
        "e507d9ebbb2d5db5948a6fb3c33f015d60708d19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 05 00:36:09 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:41 2006 -0500"
      },
      "message": "NFS: Fix up the dirty page accounting\n\nThere is now no reason to account for the dirty pages in the NFS code,\nsince the VM code will now do it for us via __set_page_dirty_nobuffers(),\nand set_page_writeback().\n\nWe still need to keep the accounting of stable writes, though.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e507d9ebbb2d5db5948a6fb3c33f015d60708d19",
      "tree": "193bffc35de3d7592e54f2124c49989e78543910",
      "parents": [
        "fa8d8c5b77a2dc467b5365a5651710161b84f16d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 05 00:35:42 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:40 2006 -0500"
      },
      "message": "NFS: Ensure the inode is marked as dirty if we break out of nfs_wb_all()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fa8d8c5b77a2dc467b5365a5651710161b84f16d",
      "tree": "64e302d72abd41bc44b78ee9f7cac9c03872d46f",
      "parents": [
        "61822ab5e3ed09fcfc49e37227b655202adf6130"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 05 00:35:42 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:40 2006 -0500"
      },
      "message": "NFS: Fix nfs_release_page\n\ninvalidate_inode_pages2_range() will clear the PG_dirty bit before calling\ntry_to_release_page().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "61822ab5e3ed09fcfc49e37227b655202adf6130",
      "tree": "224a470689463469672ed38b0da3d9f47bc8a245",
      "parents": [
        "e261f51f25b98c213e0b3d7f2109b117d714f69d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 05 00:35:42 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:40 2006 -0500"
      },
      "message": "NFS: Ensure we only call set_page_writeback() under the page lock\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "e261f51f25b98c213e0b3d7f2109b117d714f69d"
}
