)]}'
{
  "log": [
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "255c7cf810e4776ae8f1023332060459f30d8a2a",
      "tree": "1b858a364f7de9a4e129080aa3fe37ae28dd0cd3",
      "parents": [
        "c45821d263a8a5109d69a9e8942b8d65bcd5f31a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Oct 31 12:35:48 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:29 2011 -0500"
      },
      "message": "locks: minor setlease cleanup\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c45821d263a8a5109d69a9e8942b8d65bcd5f31a",
      "tree": "816e9b7f98f0eb174557dfd093526b165f274348",
      "parents": [
        "c84d500bc41658165ceb0dd04dc6a75249940fba"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Oct 31 00:04:44 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:28 2011 -0500"
      },
      "message": "locks: eliminate fl_mylease callback\n\nThe nfs server only supports read delegations for now, so we don\u0027t care\nhow conflicts are determined.  All we care is that unlocks are\nrecognized as matching the leases they are meant to remove.  After the\nlast patch, a comparison of struct files will work for that purpose.  So\nwe no longer need this callback.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8896b93f42459b18b145c69d399b62870df48061",
      "tree": "661b82f867391d16345c75b693f29b24c062d478",
      "parents": [
        "3df057ac9afe83c4af84016df3baf3a0eb1d3d33"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Nov 03 18:09:18 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Nov 10 14:31:29 2010 -0500"
      },
      "message": "locks: remove dead lease error-handling code\n\nA minor oversight from f7347ce4ee7c65415f84be915c018473e7076f31,\n\"fasync: re-organize fasync entry insertion to allow it under a\nspinlock\": this cleanup-on-error was only needed to handle -ENOMEM.  Now\nthat we\u0027re preallocating it\u0027s unneeded.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3df057ac9afe83c4af84016df3baf3a0eb1d3d33",
      "tree": "ae1d30a596abef618d2913cbead649253fa7acfc",
      "parents": [
        "21b75b019983dfa5c2dda588f4b60b4ca69844a4"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Nov 03 16:49:44 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Nov 10 14:31:23 2010 -0500"
      },
      "message": "locks: fix leak on merging leases\n\nWe must also free the passed-in lease in the case it wasn\u0027t used because\nan existing lease was upgrade/downgraded or already existed.\n\nNote the nfsd caller doesn\u0027t care because it\u0027s fl_change callback\nreturns an error in those cases.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "bb8430a2c8fe2b726033017daadf73c69b0348ea",
      "tree": "feb6063cab812816bc67bca4e509995b5ad9217d",
      "parents": [
        "51ee4b84f5c86935b438d6636f34b523edb415a8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:31 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: remove fl_copy_lock lock_manager operation\n\nThis one was only used for a nasty hack in nfsd, which has recently\nbeen removed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51ee4b84f5c86935b438d6636f34b523edb415a8",
      "tree": "c60e0da8f8b6393477d79ef6d6ce321ee3b8ecaa",
      "parents": [
        "96f935934591b72f5b05fd6923bc8cdcae92f2e5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:10 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: let the caller free file_lock on -\u003esetlease failure\n\nThe caller allocated it, the caller should free it.\n\nThe only issue so far is that we could change the flp pointer even on an\nerror return if the fl_change callback failed.  But we can simply move\nthe flp assignment after the fl_change invocation, as the callers don\u0027t\ncare about the flp return value if the setlease call failed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fa3135fdc7b9b510b502a35b6b97d2b38c6f48",
      "tree": "d533e8112111202ae890b2061c0386669002d080",
      "parents": [
        "096657b65e1ac197e20be5ce7cff6b6ca2532787"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:15 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "locks: fix setlease methods to free passed-in lock\n\nWe modified setlease to require the caller to allocate the new lease in\nthe case of creating a new lease, but forgot to fix up the filesystem\nmethods.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "096657b65e1ac197e20be5ce7cff6b6ca2532787",
      "tree": "61265f8d8075aee437597ffe050f339b207356e7",
      "parents": [
        "0ceaf6c700f8245946a163e387add8675a0c302f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:14 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "locks: fix leaks on setlease errors\n\nWe\u0027re depending on setlease to free the passed-in lease on failure.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ceaf6c700f8245946a163e387add8675a0c302f",
      "tree": "8f1657caff93050e416503b418c11c6e6b62b781",
      "parents": [
        "0d07025effd3da8b9c74f18448823175f4c63a73"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:13 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:14 2010 -0700"
      },
      "message": "locks: prevent ENOMEM on lease unlock\n\nRemoving a lock shouldn\u0027t require any allocations; a failure due to\nENOMEM leaves the caller with a choice between retrying or giving up and\nleaking an unused lease.\n\nNext we should split the other lease calls into add and delete cases.\nI wanted to start with just the bugfix.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7420a8c0de8d99b201aeeab6fed16ca95ebf55a5",
      "tree": "0787800f490f98ffd41b958e52ab15732335744e",
      "parents": [
        "12ba8d1e9262ce81a695795410bd9ee5c9407ba1",
        "72f98e72551fad573c6cace8e8551ef094f482dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:13:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:13:34 2010 -0700"
      },
      "message": "Merge branch \u0027flock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027flock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  locks: turn lock_flocks into a spinlock\n  fasync: re-organize fasync entry insertion to allow it under a spinlock\n  locks/nfsd: allocate file lock outside of spinlock\n  lockd: fix nlmsvc_notify_blocked locking\n  lockd: push lock_flocks down\n"
    },
    {
      "commit": "72f98e72551fad573c6cace8e8551ef094f482dd",
      "tree": "feeb5484ee69d3c9a9ef890037361f9ce55a42c4",
      "parents": [
        "f7347ce4ee7c65415f84be915c018473e7076f31"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 21:39:58 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 22:07:36 2010 +0200"
      },
      "message": "locks: turn lock_flocks into a spinlock\n\nNothing depends on lock_flocks using the BKL\nany more, so we can do the switch over to\na private spinlock.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "f7347ce4ee7c65415f84be915c018473e7076f31",
      "tree": "613ce14f088ad00bdbc77cdfb686a40a4851180f",
      "parents": [
        "c5b1f0d92c36851aca09ac6c7c0c4f9690ac14f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 12:38:12 2010 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 22:06:17 2010 +0200"
      },
      "message": "fasync: re-organize fasync entry insertion to allow it under a spinlock\n\nYou currently cannot use \"fasync_helper()\" in an atomic environment to\ninsert a new fasync entry, because it will need to allocate the new\n\"struct fasync_struct\".\n\nYet fcntl_setlease() wants to call this under lock_flocks(), which is in\nthe process of being converted from the BKL to a spinlock.\n\nIn order to fix this, this abstracts out the actual fasync list\ninsertion and the fasync allocations into functions of their own, and\nteaches fs/locks.c to pre-allocate the fasync_struct entry.  That way\nthe actual list insertion can happen while holding the required\nspinlock.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[bfields@redhat.com: rebase on top of my changes to Arnd\u0027s patch]\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "c5b1f0d92c36851aca09ac6c7c0c4f9690ac14f3",
      "tree": "c8aa4ad65aea3b97292135a4c23d512e6071dc8d",
      "parents": [
        "a282a1fa6b23bd21ba0b86e53ed2a316b001836f"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 15:46:08 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 21:41:50 2010 +0200"
      },
      "message": "locks/nfsd: allocate file lock outside of spinlock\n\nAs suggested by Christoph Hellwig, this moves allocation\nof new file locks out of generic_setlease into the\ncallers, nfs4_open_delegation and fcntl_setlease in order\nto allow GFP_KERNEL allocations when lock_flocks has\nbecome a spinlock.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "99dc829256bb8cfcb1f58b7f118893fdbf608e60",
      "tree": "07c5b353965b1ead7183bd01c0b48903ded0d8af",
      "parents": [
        "4199ca77cc44c418972e8f30a36be7d26d21a0d2"
      ],
      "author": {
        "name": "Jerome Marchand",
        "email": "jmarchan@redhat.com",
        "time": "Tue Oct 26 14:22:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:13 2010 -0700"
      },
      "message": "procfs: fix numbering in /proc/locks\n\nThe lock number in /proc/locks (first field) is implemented by a counter\n(private field of struct seq_file) which is incremented at each call of\nlocks_show() and reset to 1 in locks_start() whatever the offset is.  It\nshould be reset according to the actual position in the list.  Because of\nthis, the numbering erratically restarts at 1 several times when reading a\nlong /proc/locks file.\n\nMoreover, locks_show() can be called twice to print a single line thus\nskipping a number.  The counter should be incremented in locks_next().\n\nAnd last, pos is a loff_t, which can be bigger than a pointer, so we don\u0027t\nuse the pointer as an integer anymore, and allocate a loff_t instead.\n\nSigned-off-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b89f432133851a01c0d28822f11cbdcc15781a75",
      "tree": "a3e9ba638a9b746985148f4525335d360ec7da56",
      "parents": [
        "2e54eb96e2c801f33d95b5dade15212ac4d6c4a5"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 18 15:09:31 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 05 11:02:04 2010 +0200"
      },
      "message": "fs/locks.c: prepare for BKL removal\n\nThis prepares the removal of the big kernel lock from the\nfile locking code. We still use the BKL as long as fs/lockd\nuses it and ceph might sleep, but we can flip the definition\nto a private spinlock as soon as that\u0027s done.\nAll users outside of fs/lockd get converted to use\nlock_flocks() instead of lock_kernel() where appropriate.\n\nBased on an earlier patch to use a spinlock from Matthew\nWilcox, who has attempted this a few times before, the\nearliest patch from over 10 years ago turned it into\na semaphore, which ended up being slower than the BKL\nand was subsequently reverted.\n\nSomeone should do some serious performance testing when\nthis becomes a spinlock, since this has caused problems\nbefore. Using a spinlock should be at least as good\nas the BKL in theory, but who knows...\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-fsdevel@vger.kernel.org\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "8737c9305bd5602b11f7eb4655d5695d4a42a0c6",
      "tree": "54038cac1135b039a292151ebe9b156f80904843",
      "parents": [
        "d208bbdda991b8808d9c033ce4d31cb1bd87dcfc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:47:55 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 13:00:21 2010 -0500"
      },
      "message": "Switch may_open() and break_lease() to passing O_...\n\n... instead of mixing FMODE_ and O_\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c9404c9c392d557a4687c4cbda022b03cb787ce9",
      "tree": "1633e9e8d6a3f955297affd2c3304bdbb670a73c",
      "parents": [
        "634bad68bc25753816594ecd390dcea980528315"
      ],
      "author": {
        "name": "Adam Buchbinder",
        "email": "adam.buchbinder@gmail.com",
        "time": "Fri Dec 18 15:40:42 2009 -0500"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Feb 05 12:22:30 2010 +0100"
      },
      "message": "Fix misspelling of \"should\" and \"shouldn\u0027t\" in comments.\n\nSome comments misspell \"should\" or \"shouldn\u0027t\"; this fixes them. No code changes.\n\nSigned-off-by: Adam Buchbinder \u003cadam.buchbinder@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7b021967c5e1463936042c8da72b550d3cabe9ac",
      "tree": "efb5c26216851a93b3db3fba55858af04c8a15c5",
      "parents": [
        "6aed62853c72e29f2c97bbac7712cb398e8c9437"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "const: make lock_manager_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "774a694f8cd08115d130a290d73c6d8563f26b1b",
      "tree": "2b5f834ac7a149278d2a7e44d7afe69f40ef1431",
      "parents": [
        "4f0ac854167846bd55cd81dbc9a36e03708aa01c",
        "e1f8450854d69f0291882804406ea1bab3ca44b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (64 commits)\n  sched: Fix sched::sched_stat_wait tracepoint field\n  sched: Disable NEW_FAIR_SLEEPERS for now\n  sched: Keep kthreads at default priority\n  sched: Re-tune the scheduler latency defaults to decrease worst-case latencies\n  sched: Turn off child_runs_first\n  sched: Ensure that a child can\u0027t gain time over it\u0027s parent after fork()\n  sched: enable SD_WAKE_IDLE\n  sched: Deal with low-load in wake_affine()\n  sched: Remove short cut from select_task_rq_fair()\n  sched: Turn on SD_BALANCE_NEWIDLE\n  sched: Clean up topology.h\n  sched: Fix dynamic power-balancing crash\n  sched: Remove reciprocal for cpu_power\n  sched: Try to deal with low capacity, fix update_sd_power_savings_stats()\n  sched: Try to deal with low capacity\n  sched: Scale down cpu_power due to RT tasks\n  sched: Implement dynamic cpu_power\n  sched: Add smt_gain\n  sched: Update the cpu_power sum during load-balance\n  sched: Add SD_PREFER_SIBLING\n  ...\n"
    },
    {
      "commit": "def01bc53d03881acfc393bd10a5c7575187e008",
      "tree": "7b6a82ca80e95e3a3b5ea4f10adb6a1cdda277b5",
      "parents": [
        "613afbf83298efaead05ebcac23d2285609d7160"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 15:51:45 2009 +0200"
      },
      "message": "sched: Convert the only user of cond_resched_bkl to use cond_resched()\n\nfs/locks.c:flock_lock_file() is the only user of\ncond_resched_bkl()\n\nThis helper doesn\u0027t do anything more than cond_resched(). The\nlatter naming is enough to explain that we are rescheduling if\nneeded.\n\nThe bkl suffix suggests another semantics but it\u0027s actually a\nsynonym of cond_resched().\n\nReported-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1247725694-6082-7-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "713c0ecdb888e9ef6f085e828555455c5916b07f",
      "tree": "cd07a7efca2c99046f5e0c6ee119b77bcfea9d1b",
      "parents": [
        "7d45ecafb6792ca68da9517969d37d910601845f"
      ],
      "author": {
        "name": "Sten Spans",
        "email": "Sten_Spans@genua.de",
        "time": "Thu Jul 16 09:41:39 2009 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Jul 17 07:41:23 2009 +1000"
      },
      "message": "security: fix security_file_lock cmd argument\n\nPass posix-translated lock operations to security_file_lock\nwhen invoked via sys_flock.\n\nSigned-off-by: Sten Spans \u003cSten_Spans@genua.de\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a9e61e25f9d2e7e43bf17625f5cb56c9e0a89b17",
      "tree": "1c000afc1e2eadb00570ae34666af508afa021fe",
      "parents": [
        "80492e7d49bee0a280a84a39075a7857b92836b2"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Mar 31 15:12:56 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 24 16:36:03 2009 -0400"
      },
      "message": "lockd: call locks_release_private to cleanup per-filesystem state\n\nFor every lock request lockd creates a new file_lock object\nin nlmsvc_setgrantargs() by copying the passed in file_lock with\nlocks_copy_lock(). A filesystem can attach it\u0027s own lock_operations\nvector to the file_lock. It has to be cleaned up at the end of the\nfile_lock\u0027s life. However, lockd doesn\u0027t do it today, yet it\nasserts in nlmclnt_release_lockargs() that the per-filesystem\nstate is clean.\nThis patch fixes it by exporting locks_release_private() and adding\nit to nlmsvc_freegrantargs(), to be symmetrical to creating a\nfile_lock in nlmsvc_setgrantargs().\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "002c8976ee537724b20a5e179d9b349309438836",
      "tree": "272ebe6d0dcb06bb16b978fb9793d266dbc1301a",
      "parents": [
        "a26eab2400f0477bfac0255600552394855016f7"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:18 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:25 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 16\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "da9592edebceeba1b9301beafe80ec8b9c2db0ce",
      "tree": "00c110cd8ff6d211d76ab4868b6175096a38aad5",
      "parents": [
        "82ab8deda7fef36f067ccdeacc3b3caefc970f89"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:05 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:05 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the filesystem subsystem\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "88ed86fee6651033de9b7038dac7869a9f19775a",
      "tree": "38b638d2e7cba110ec271275738f221feb7e0a37",
      "parents": [
        "3856d30ded1fe43c6657927ebad402d25cd128f4",
        "59c7572e82d69483a66eaa67b46548baeb69ecf4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "message": "Merge branch \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc: (35 commits)\n  proc: remove fs/proc/proc_misc.c\n  proc: move /proc/vmcore creation to fs/proc/vmcore.c\n  proc: move pagecount stuff to fs/proc/page.c\n  proc: move all /proc/kcore stuff to fs/proc/kcore.c\n  proc: move /proc/schedstat boilerplate to kernel/sched_stats.h\n  proc: move /proc/modules boilerplate to kernel/module.c\n  proc: move /proc/diskstats boilerplate to block/genhd.c\n  proc: move /proc/zoneinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmstat boilerplate to mm/vmstat.c\n  proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c\n  proc: move /proc/buddyinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmallocinfo to mm/vmalloc.c\n  proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n  proc: move /proc/slab_allocators boilerplate to mm/slab.c\n  proc: move /proc/interrupts boilerplate code to fs/proc/interrupts.c\n  proc: move /proc/stat to fs/proc/stat.c\n  proc: move rest of /proc/partitions code to block/genhd.c\n  proc: move /proc/cpuinfo code to fs/proc/cpuinfo.c\n  proc: move /proc/devices code to fs/proc/devices.c\n  proc: move rest of /proc/locks to fs/locks.c\n  ...\n"
    },
    {
      "commit": "d8ba7a363393f803c93c8cffabd6d0362618bc2a",
      "tree": "331010c221eb9dfe396b2e6958a08f0fb695e117",
      "parents": [
        "ae048112c099b0f3adb57f7c0b3a49bc62244609"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 22:34:18 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:37:00 2008 +0400"
      },
      "message": "proc: move rest of /proc/locks to fs/locks.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "aeb5d727062a0238a2f96c9c380fbd2be4640c6f",
      "tree": "51dae8a071fcf42e4431a66d37c5b843c8e99cf6",
      "parents": [
        "2515ddc6db8eb49a79f0fe5e67ff09ac7c81eab4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 02 15:28:45 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:47:06 2008 -0400"
      },
      "message": "[PATCH] introduce fmode_t, do annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "764c76b371722e0cba5c24d91225f0f954b69d44",
      "tree": "3f9bd533878f502b1235194b50a101a84a7c68be",
      "parents": [
        "b648a6de00770cc325c22f43bdd4e935f6a2ee55"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:48:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:48 2008 -0700"
      },
      "message": "locks: allow -\u003elock() to return FILE_LOCK_DEFERRED\n\nAllow filesystem\u0027s -\u003elock() method to call posix_lock_file() instead of\nposix_lock_file_wait(), and return FILE_LOCK_DEFERRED.  This makes it\npossible to implement a such a -\u003elock() function, that works with the lock\nmanager, which needs the call to be asynchronous.\n\nNow the vfs_lock_file() helper can be used, so this is a cleanup as well.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b648a6de00770cc325c22f43bdd4e935f6a2ee55",
      "tree": "fa2bc39a63059573b2c74b963f2d0e91c5f31b3a",
      "parents": [
        "bde74e4bc64415b142e556a34d295a52a1b7da9d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:48:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:48 2008 -0700"
      },
      "message": "locks: cleanup code duplication\n\nExtract common code into a function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bde74e4bc64415b142e556a34d295a52a1b7da9d",
      "tree": "b6bd229307ccab9b1ad03ffbc75f1f9960cd49e4",
      "parents": [
        "cc77b1521d06be07c9bb1a4a3e1f775dcaa15093"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:48:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "locks: add special return value for asynchronous locks\n\nUse a special error value FILE_LOCK_DEFERRED to mean that a locking\noperation returned asynchronously.  This is returned by\n\n  posix_lock_file() for sleeping locks to mean that the lock has been\n  queued on the block list, and will be woken up when it might become\n  available and needs to be retried (either fl_lmops-\u003efl_notify() is\n  called or fl_wait is woken up).\n\n  f_op-\u003elock() to mean either the above, or that the filesystem will\n  call back with fl_lmops-\u003efl_grant() when the result of the locking\n  operation is known.  The filesystem can do this for sleeping as well\n  as non-sleeping locks.\n\nThis is to make sure, that return values of -EAGAIN and -EINPROGRESS by\nfilesystems are not mistaken to mean an asynchronous locking.\n\nThis also makes error handling in fs/locks.c and lockd/svclock.c slightly\ncleaner.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9f48ec72bfc9489a30bc6ddbfcf27d86a8bc651",
      "tree": "b04720f8c5eaf69a94d134793ff83b78324142fa",
      "parents": [
        "694a1764d657e0f7a9b139bc7269c8d5f5a2534b"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Jun 09 16:40:38 2008 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 23 11:52:30 2008 -0400"
      },
      "message": "[patch 4/4] flock: remove unused fields from file_lock_operations\n\nfl_insert and fl_remove are not used right now in the kernel. Remove them.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c3921ab71507b108d51a0f1ee960f80cd668a93d",
      "tree": "b1408b898a8b50f15ad4a0cf1f29e17cc0138485",
      "parents": [
        "9662369786b9d07fd46d65b0f9e3938a3e01a5d9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 11 16:04:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 11 16:04:48 2008 -0700"
      },
      "message": "Add new \u0027cond_resched_bkl()\u0027 helper function\n\nIt acts exactly like a regular \u0027cond_resched()\u0027, but will not get\noptimized away when CONFIG_PREEMPT is set.\n\nNormal kernel code is already preemptable in the presense of\nCONFIG_PREEMPT, so cond_resched() is optimized away (see commit\n02b67cc3ba36bdba351d6c3a00593f4ec550d9d3 \"sched: do not do\ncond_resched() when CONFIG_PREEMPT\").\n\nBut when wanting to conditionally reschedule while holding a lock, you\nneed to use \"cond_sched_lock(lock)\", and the new function is the BKL\nequivalent of that.\n\nAlso make fs/locks.c use it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b2bac2f1ea0d33a3621b27ca68b9ae760fca2e9",
      "tree": "f5d150cc2177700f0881eecf8d9ed69bb82aba17",
      "parents": [
        "33dcdac2df54e66c447ae03f58c95c7251aa5649"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 06 13:58:34 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 06 13:58:34 2008 -0400"
      },
      "message": "[PATCH] fix SMP ordering hole in fcntl_setlk()\n\nfcntl_setlk()/close() race prevention has a subtle hole - we need to\nmake sure that if we *do* have an fcntl/close race on SMP box, the\naccess to descriptor table and inode-\u003ei_flock won\u0027t get reordered.\n\nAs it is, we get STORE inode-\u003ei_flock, LOAD descriptor table entry vs.\nSTORE descriptor table entry, LOAD inode-\u003ei_flock with not a single\nlock in common on both sides.  We do have BKL around the first STORE,\nbut check in locks_remove_posix() is outside of BKL and for a good\nreason - we don\u0027t want BKL on common path of close(2).\n\nSolution is to hold -\u003efile_lock around fcheck() in there; that orders\nus wrt removal from descriptor table that preceded locks_remove_posix()\non close path and we either come first (in which case eviction will be\nhandled by the close side) or we\u0027ll see the effect of close and do\neviction ourselves.  Note that even though it\u0027s read-only access,\nwe do need -\u003efile_lock here - rcu_read_lock() won\u0027t be enough to\norder the things.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9f3acc3140444a900ab280de942291959f0f615d",
      "tree": "0d7f3f9698071ff90fb9a127a4c6e86e1c37c945",
      "parents": [
        "a2dcb44c3c5a8151d2d9f6ac8ad0789efcdbe184"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:44:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 01 13:08:16 2008 -0400"
      },
      "message": "[PATCH] split linux/file.h\n\nInitial splitoff of the low-level stuff; taken to fdtable.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3dd7b71ca0f7ff8410a6b8cb15e5f670f90181e4",
      "tree": "163e064bdd9036ae60c8998357d0c471f087699b",
      "parents": [
        "b9fa38f75ea7e1f64bc29653ca9758303ce698e4"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Fri Apr 25 15:32:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 25 15:49:46 2008 -0700"
      },
      "message": "Export __locks_copy_lock() so modular lockd builds\n\nCommit 1a747ee0 (\"locks: don\u0027t call -\u003ecopy_lock methods on return of\nconflicting locks\") changed fs/lockd/svclock.c to call\n__locks_copy_lock() instead of locks_copy_lock(), but lockd can be built\nas a module and __locks_copy_lock() is not exported, which causes a\nbuild error\n\n    ERROR: \"__locks_copy_lock\" [fs/lockd/lockd.ko] undefined!\n\nwith CONFIG_LOCKD\u003dm.\n\nFix this by exporting __locks_copy_lock().\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a747ee0cc11a198f9e2435add821bd0dfedb7c1",
      "tree": "10b5a55bde30bef3f466e5126bd44fc0e111fc5a",
      "parents": [
        "17efa372cfe4d189705edf6cd4fbe283827a5dc7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 24 10:08:22 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:11 2008 -0400"
      },
      "message": "locks: don\u0027t call -\u003ecopy_lock methods on return of conflicting locks\n\nThe file_lock structure is used both as a heavy-weight representation of\nan active lock, with pointers to reference-counted structures, etc., and\nas a simple container for parameters that describe a file lock.\n\nThe conflicting lock returned from __posix_lock_file is an example of\nthe latter; so don\u0027t call the filesystem or lock manager callbacks when\ncopying to it.  This also saves the need for an unnecessary\nlocks_init_lock in the nfsv4 server.\n\nThanks to Trond for pointing out the error.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9d91cdcc0cce3186742f38e7352459b2087fbb86",
      "tree": "d2062fef7a3d62c74e7b8ea6810f6bc141f9b7e8",
      "parents": [
        "190855576743a510219fc67886dace29b825d8cb"
      ],
      "author": {
        "name": "David M. Richter",
        "email": "richterd@citi.umich.edu",
        "time": "Wed Apr 23 16:29:02 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 12:58:22 2008 -0400"
      },
      "message": "leases: remove unneeded variable from fcntl_setlease().\n\nfcntl_setlease() has a struct dentry* that is used only once; this patch\nremoves it.\n\nSigned-off-by: David M. Richter \u003crichterd@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "190855576743a510219fc67886dace29b825d8cb",
      "tree": "f31c569aa43b5e000610e81546fce13fecf894d8",
      "parents": [
        "288b2fd8251cb0bcb14b8a93755ef9c78de70e0f"
      ],
      "author": {
        "name": "David M. Richter",
        "email": "richterd@citi.umich.edu",
        "time": "Wed Apr 23 16:29:01 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 12:58:22 2008 -0400"
      },
      "message": "leases: move lock allocation earlier in generic_setlease()\n\nIn generic_setlease(), the struct file_lock is allocated after tests for the\npresence of conflicting readers/writers is done, despite the fact that the\nallocation might block; this patch moves the allocation earlier.  A subsequent\nset of patches will rely on this behavior to properly serialize between a\nmodified __break_lease() and generic_setlease().\n\nSigned-off-by: David M. Richter \u003crichterd@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "288b2fd8251cb0bcb14b8a93755ef9c78de70e0f",
      "tree": "65ab67c528ad063f8e2103e1bb916bcb6981bd66",
      "parents": [
        "5fcc60c3a05bf417229fba715e7aec52bf6717fb"
      ],
      "author": {
        "name": "David M. Richter",
        "email": "richterd@citi.umich.edu",
        "time": "Wed Apr 23 16:29:00 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 12:58:22 2008 -0400"
      },
      "message": "leases: when unlocking, skip locking-related steps\n\nIn generic_setlease(), we don\u0027t need to allocate a new struct file_lock\nor check for readers or writers when called with F_UNLCK.\n\nSigned-off-by: David M. Richter \u003crichterd@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5fcc60c3a05bf417229fba715e7aec52bf6717fb",
      "tree": "6107e4db59f6394c4854e782e96e6343202df3af",
      "parents": [
        "b69d3987f4360a5e7e9e55465b3cdd0cc204b79e"
      ],
      "author": {
        "name": "David M. Richter",
        "email": "richterd@citi.umich.edu",
        "time": "Wed Apr 23 16:28:59 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 12:58:22 2008 -0400"
      },
      "message": "leases: fix a return-value mixup\n\nFixes a return-value mixup from 85c59580b30c82aa771aa33b37217a6b6851bc14\n\"locks: Fix potential OOPS in generic_setlease()\", in which -ENOMEM replaced\nwhat had been intended to stay -EAGAIN in the variable \"error\".\n\nSigned-off-by: David M. Richter \u003crichterd@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "cb688371e27880d86c42323826846d1cd7caad8f",
      "tree": "1be4f5bb437e86a547365a94aed5ade23adb09da",
      "parents": [
        "d3135846f6c1858dbad6ccb780a42e6c98953e6d"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Feb 26 09:59:26 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:16:44 2008 -0400"
      },
      "message": "fs: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "19e729a928172103e101ffd0829fd13e68c13f78",
      "tree": "5d3492a6dd2191abebe27a8d59e181398375e9c8",
      "parents": [
        "a985aabe4d7a720b109c2b63549f8641676a9c88"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 14 15:03:02 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 14 12:22:14 2008 -0700"
      },
      "message": "locks: fix possible infinite loop in fcntl(F_SETLKW) over nfs\n\nMiklos Szeredi found the bug:\n\n\t\"Basically what happens is that on the server nlm_fopen() calls\n\tnfsd_open() which returns -EACCES, to which nlm_fopen() returns\n\tNLM_LCK_DENIED.\n\n\t\"On the client this will turn into a -EAGAIN (nlm_stat_to_errno()),\n\twhich in will cause fcntl_setlk() to retry forever.\"\n\nSo, for example, opening a file on an nfs filesystem, changing\npermissions to forbid further access, then trying to lock the file,\ncould result in an infinite loop.\n\nAnd Trond Myklebust identified the culprit, from Marc Eshel and I:\n\n\t7723ec9777d9832849b76475b1a21a2872a40d20 \"locks: factor out\n\tgeneric/filesystem switch from setlock code\"\n\nThat commit claimed to just be reshuffling code, but actually introduced\na behavioral change by calling the lock method repeatedly as long as it\nreturned -EAGAIN.\n\nWe assumed this would be safe, since we assumed a lock of type SETLKW\nwould only return with either success or an error other than -EAGAIN.\nHowever, nfs does can in fact return -EAGAIN in this situation, and\nindependently of whether that behavior is correct or not, we don\u0027t\nactually need this change, and it seems far safer not to depend on such\nassumptions about the filesystem\u0027s -\u003elock method.\n\nTherefore, revert the problematic part of the original commit.  This\nleaves vfs_lock_file() and its other callers unchanged, while returning\nfcntl_setlk and fcntl_setlk64 to their former behavior.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nTested-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6b91919e0881a0d0a4ae5211d5c879a8c7ca92b",
      "tree": "148aabc0a92a297f9220174435e822f30c951215",
      "parents": [
        "5366dc9fd1cb74023790a8edf29e4fe42c886dcf"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Mar 19 17:01:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 19 18:53:36 2008 -0700"
      },
      "message": "fs: fix kernel-doc notation warnings\n\nFix kernel-doc notation warnings in fs/.\n\nWarning(mmotm-2008-0314-1449//fs/super.c:560): missing initial short description on line:\n *\tmark_files_ro\nWarning(mmotm-2008-0314-1449//fs/locks.c:1277): missing initial short description on line:\n *\tlease_get_mtime\nWarning(mmotm-2008-0314-1449//fs/locks.c:1277): missing initial short description on line:\n *\tlease_get_mtime\nWarning(mmotm-2008-0314-1449//fs/namei.c:1368): missing initial short description on line:\n * lookup_one_len:  filesystem helper to lookup single pathname component\nWarning(mmotm-2008-0314-1449//fs/buffer.c:3221): missing initial short description on line:\n * bh_uptodate_or_lock: Test whether the buffer is uptodate\nWarning(mmotm-2008-0314-1449//fs/buffer.c:3240): missing initial short description on line:\n * bh_submit_read: Submit a locked buffer for reading\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:30): missing initial short description on line:\n * writeback_acquire: attempt to get exclusive writeback access to a device\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:47): missing initial short description on line:\n * writeback_in_progress: determine whether there is writeback in progress\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:58): missing initial short description on line:\n * writeback_release: relinquish exclusive writeback access against a device.\nWarning(mmotm-2008-0314-1449//include/linux/jbd.h:351): contents before sections\nWarning(mmotm-2008-0314-1449//include/linux/jbd.h:561): contents before sections\nWarning(mmotm-2008-0314-1449//fs/jbd/transaction.c:1935): missing initial short description on line:\n * void journal_invalidatepage()\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": "6c5f3e7b43300508fe3947ff3cfff0f86043bb57",
      "tree": "9843b8897ec3357b09f62bb6423cd4753e1d4516",
      "parents": [
        "fea9d175545b38cb3e84569400419eb81bc90fa3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:19:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "Pidns: make full use of xxx_vnr() calls\n\nSome time ago the xxx_vnr() calls (e.g.  pid_vnr or find_task_by_vpid) were\n_all_ converted to operate on the current pid namespace.  After this each call\nlike xxx_nr_ns(foo, current-\u003ensproxy-\u003epid_ns) is nothing but a xxx_vnr(foo)\none.\n\nSwitch all the xxx_nr_ns() callers to use the xxx_vnr() calls where\nappropriate.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab1f16116527e42dec8aee176d673a41a881b809",
      "tree": "0d20fa10151e43f9f104986a2b89ec88ca0135af",
      "parents": [
        "4321e01e7dce8042758349ffa2929c723b0d4107"
      ],
      "author": {
        "name": "Vitaliy Gusev",
        "email": "vgusev@openvz.org",
        "time": "Thu Jan 17 00:07:08 2008 +0000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 03 17:51:36 2008 -0500"
      },
      "message": "pid-namespaces-vs-locks-interaction\n\nfcntl(F_GETLK,..) can return pid of process for not current pid namespace\n(if process is belonged to the several namespaces).  It is true also for\npids in /proc/locks.  So correct behavior is saving pointer to the struct\npid of the process lock owner.\n\nSigned-off-by: Vitaliy Gusev \u003cvgusev@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4321e01e7dce8042758349ffa2929c723b0d4107",
      "tree": "32b7b1a4af4b28c3ce1fc013bc7a2da4f2e21fde",
      "parents": [
        "b533184fc353d4a2d07929b4ac424a6f1bf5a3b9"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Mon Jan 14 21:28:30 2008 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 03 17:51:36 2008 -0500"
      },
      "message": "file locks: Use wait_event_interruptible_timeout()\n\ninterruptible_sleep_on_locked() is just an open-coded\nwait_event_interruptible_timeout(), with the one difference that\ninterruptible_sleep_on_locked() doesn\u0027t bother to check the condition on\nwhich it is waiting, depending instead on the BKL to avoid the case\nwhere it blocks after the wakeup has already been called.\n\nlocks_block_on_timeout() is only used in one place, so it\u0027s actually\nsimpler to inline it into its caller.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b533184fc353d4a2d07929b4ac424a6f1bf5a3b9",
      "tree": "502634d5810735bcaea8666bdadf9bc0b6abc216",
      "parents": [
        "9135f1901ee6449dfe338adf6e40e9c2025b8150"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 26 18:05:40 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 03 17:51:36 2008 -0500"
      },
      "message": "locks: clarify posix_locks_deadlock\n\nFor such a short function (with such a long comment),\nposix_locks_deadlock() seems to cause a lot of confusion.  Attempt to\nmake it a bit clearer:\n\n\t- Remove the initial posix_same_owner() check, which can never\n\t  pass (since this is only called in the case that block_fl and\n\t  caller_fl conflict)\n\t- Use an explicit loop (and a helper function) instead of a goto.\n\t- Rewrite the comment, attempting a clearer explanation, and\n\t  removing some uninteresting historical detail.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "97855b49b6bac0bd25f16b017883634d13591d00",
      "tree": "e0895adabfda85bd9dc7514265940fdef8b1e506",
      "parents": [
        "fb7267acfef1de3e49d4e0c80be3cc603e974b3b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 30 11:20:02 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 30 09:04:18 2007 -0700"
      },
      "message": "locks: fix possible infinite loop in posix deadlock detection\n\nIt\u0027s currently possible to send posix_locks_deadlock() into an infinite\nloop (under the BKL).\n\nFor now, fix this just by bailing out after a few iterations.  We may\nwant to fix this in a way that better clarifies the semantics of\ndeadlock detection.  But that will take more time, and this minimal fix\nis probably adequate for any realistic scenario, and is simple enough to\nbe appropriate for applying to stable kernels now.\n\nThanks to George Davis for reporting the problem.\n\nCc: \"George G. Davis\" \u003cgdavis@mvista.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957",
      "tree": "191b4f45f926e44b882b1e87a9a85dc12230b892",
      "parents": [
        "b811c202a0edadaac7242ab834fe7ba409978ae7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 23:25:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "Slab API: remove useless ctor parameter and reorder parameters\n\nSlab constructors currently have a flags parameter that is never used.  And\nthe order of the arguments is opposite to other slab functions.  The object\npointer is placed before the kmem_cache pointer.\n\nConvert\n\n        ctor(void *object, struct kmem_cache *s, unsigned long flags)\n\nto\n\n        ctor(struct kmem_cache *s, void *object)\n\nthroughout the kernel\n\n[akpm@linux-foundation.org: coupla fixes]\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": "7f8ada98d9edd83d6ebd01e431e15b024a4a3dc4",
      "tree": "1231947efa06478714eeabac3bdbffc663f453c7",
      "parents": [
        "094f2825218fec1b240cb8537d2d0a10edf5ddc9"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Oct 01 14:41:15 2007 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:46 2007 -0400"
      },
      "message": "Rework /proc/locks via seq_files and seq_list helpers\n\nCurrently /proc/locks is shown with a proc_read function, but its behavior\nis rather complex as it has to manually handle current offset and buffer\nlength.  On the other hand, files that show objects from lists can be\neasily reimplemented using the sequential files and the seq_list_XXX()\nhelpers.\n\nThis saves (as usually) 16 lines of code and more than 200 from\nthe .text section.\n\n[akpm@linux-foundation.org: no externs in C]\n[akpm@linux-foundation.org: warning fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "094f2825218fec1b240cb8537d2d0a10edf5ddc9",
      "tree": "badec49dc185e0b5cfcf6a6a04623077d35152ca",
      "parents": [
        "dfad9441be82f1eadc3fa3f1bbc93f93d48d1bdf"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Tue Oct 02 11:21:34 2007 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:46 2007 -0400"
      },
      "message": "fs/locks.c: use list_for_each_entry() instead of list_for_each()\n\nfs/locks.c: use list_for_each_entry() instead of list_for_each() in\nposix_locks_deadlock() and get_locks_status()\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a16877ca9cec211708a161057a7cbfbf2cbc3a53",
      "tree": "a114bfe588af58047b1eb2aa1f57ac4b890c01a6",
      "parents": [
        "98257af5a2ad0c5b502ebd07094d9fd8ce87acef"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Oct 01 14:41:11 2007 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:46 2007 -0400"
      },
      "message": "Cleanup macros for distinguishing mandatory locks\n\nThe combination of S_ISGID bit set and S_IXGRP bit unset is used to mark the\ninode as \"mandatory lockable\" and there\u0027s a macro for this check called\nMANDATORY_LOCK(inode).  However, fs/locks.c and some filesystems still perform\nthe explicit i_mode checking.  Besides, Andrew pointed out, that this macro is\nbuggy itself, as it dereferences the inode arg twice.\n\nConvert this macro into static inline function and switch its users to it,\nmaking the code shorter and more readable.\n\nThe __mandatory_lock() helper is to be used in places where the IS_MANDLOCK()\nfor superblock is already known to be true.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85c59580b30c82aa771aa33b37217a6b6851bc14",
      "tree": "02e96b437a63908ad3791021d352ad2aefff9936",
      "parents": [
        "f0c1cd0eaf0b127356c2c09e40305453bc361b0f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Sep 20 12:45:02 2007 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:45 2007 -0400"
      },
      "message": "locks: Fix potential OOPS in generic_setlease()\n\nThis code is run under lock_kernel(), which is dropped during\nsleeping operations, so the following race is possible:\n\nCPU1:                                CPU2:\n  vfs_setlease();                    vfs_setlease();\n  lock_kernel();\n                                     lock_kernel(); /* spin */\n  generic_setlease():\n    ...\n    for (before \u003d ...)\n    /* here we found some lease after\n     * which we will insert the new one\n     */\n    fl \u003d locks_alloc_lock();\n    /* go to sleep in this allocation and\n     * drop the BKL\n     */\n                                     generic_setlease():\n                                       ...\n                                       for (before \u003d ...)\n                                       /* here we find the \"before\" pointing\n                                        * at the one we found on CPU1\n                                        */\n                                      -\u003efl_change(my_before, arg);\n                                              lease_modify();\n                                                     locks_free_lock();\n                                                     /* and we freed it */\n                                     ...\n                                     unlock_kernel();\n   locks_insert_lock(before, fl);\n   /* OOPS! We have just tried to add the lease\n    * at the tail of already removed one\n    */\n\nThe similar races are already handled in other code - all the\nallocations are performed before any checks/updates.\n\nThanks to Kamalesh Babulal for testing and for a bug report on an\nearlier version.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f0c1cd0eaf0b127356c2c09e40305453bc361b0f",
      "tree": "e522f8d83b439442aeb8c1b9c2a94941f6a95b1a",
      "parents": [
        "02888f41e9d7fa95d1f5b2f76e0f0af6ea8198cc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Sep 19 16:44:07 2007 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:45 2007 -0400"
      },
      "message": "Use list_first_entry in locks_wake_up_blocks\n\nThis routine deletes all the elements from the list\nwith the \"while (!list_empty())\" loop, and we already\nhave a list_first_entry() macro to help it look nicer :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\n"
    },
    {
      "commit": "02888f41e9d7fa95d1f5b2f76e0f0af6ea8198cc",
      "tree": "29b53806e2be24989d343fa13fdb4d9e6d657361",
      "parents": [
        "84d535ade62b6f8ce852745731ad6200c46b977c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Sep 12 15:45:07 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:45 2007 -0400"
      },
      "message": "locks: fix flock_lock_file() comment\n\nThis comment wasn\u0027t updated when lease support was added, and it makes\nessentially the same mistake that the code made before a recent bugfix.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "84d535ade62b6f8ce852745731ad6200c46b977c",
      "tree": "7e9c17b51a86a1fdb20aff02432fb85723fa9579",
      "parents": [
        "526985b9dd6ef7716b87f5fe6f0e2438ea3a89c7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Sep 11 16:38:13 2007 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:45 2007 -0400"
      },
      "message": "Memory shortage can result in inconsistent flocks state\n\nWhen the flock_lock_file() is called to change the flock\nfrom F_RDLCK to F_WRLCK or vice versa the existing flock\ncan be removed without appropriate warning.\n\nLook:\n        for_each_lock(inode, before) {\n                struct file_lock *fl \u003d *before;\n                if (IS_POSIX(fl))\n                        break;\n                if (IS_LEASE(fl))\n                        continue;\n                if (filp !\u003d fl-\u003efl_file)\n                        continue;\n                if (request-\u003efl_type \u003d\u003d fl-\u003efl_type)\n                        goto out;\n                found \u003d 1;\n                locks_delete_lock(before); \u003c\u003c\u003c\u003c\u003c\u003c !\n                break;\n        }\n\nif after this point the subsequent locks_alloc_lock() will\nfail the return code will be -ENOMEM, but the existing lock\nis already removed.\n\nThis is a known feature that such \"re-locking\" is not atomic,\nbut in the racy case the file should stay locked (although by\nsome other process), but in this case the file will be unlocked.\n\nThe proposal is to prepare the lock in advance keeping no chance\nto fail in the future code.\n\nFound during making the flocks pid-namespaces aware.\n\n(Note: Thanks to Reuben Farrelly for finding a bug in an earlier version\nof this patch.)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Reuben Farrelly \u003creuben-linuxkernel@reub.net\u003e\n"
    },
    {
      "commit": "526985b9dd6ef7716b87f5fe6f0e2438ea3a89c7",
      "tree": "e22c895d58413a2b784b7e91a9c6d73e724a1838",
      "parents": [
        "b842e240f27678aa5d71611cddc8d17a93fb0caf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Nov 14 16:54:36 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:45 2007 -0400"
      },
      "message": "locks: kill redundant local variable\n\nThere\u0027s no need for another variable local to this loop; we can use the\nvariable (of the same name!) already declared at the top of the function,\nand not used till later (at which point it\u0027s initialized, so this is safe).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b842e240f27678aa5d71611cddc8d17a93fb0caf",
      "tree": "7722a03d55068e783d0dfe6d98635ab50d2b5bfa",
      "parents": [
        "bbf25010f1a6b761914430f5fca081ec8c7accd1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 10 19:02:07 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:45 2007 -0400"
      },
      "message": "locks: reverse order of posix_locks_conflict() arguments\n\nThe first argument to posix_locks_conflict() is meant to be a lock request,\nand the second a lock from an inode\u0027s lock request.  It doesn\u0027t really\nmake a difference which order you call them in, since the only\nasymmetric test in posix_lock_conflict() is the check whether the second\nargument is a posix lock--and every caller already does that check for\nsome reason.\n\nBut may as well fix posix_test_lock() to call posix_locks_conflict()\nwith the arguments in the same order as everywhere else.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0e2f6db88a6900bc9db576d6b478b12ee60d61f7",
      "tree": "bd26a78ea79286622785191afa6f8e1c81f58c2d",
      "parents": [
        "4740622c5c805d88c63a50747a2d05537dd233cf"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Sep 11 15:24:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Sep 11 17:21:27 2007 -0700"
      },
      "message": "Leases can be hidden by flocks\n\nThe inode-\u003ei_flock list contains the leases, flocks and posix\nlocks in the specified order. However, the flocks are added in\nthe head of this list thus hiding the leases from F_GETLEASE\ncommand, from time_out_leases() and other code that expects\nthe leases to come first.\n\nThe following example will demonstrate this:\n\n#define _GNU_SOURCE\n\n#include \u003cunistd.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003csys/file.h\u003e\n\nstatic void show_lease(int fd)\n{\n        int res;\n\n        res \u003d fcntl(fd, F_GETLEASE);\n        switch (res) {\n                case F_RDLCK:\n                        printf(\"Read lease\\n\");\n                        break;\n                case F_WRLCK:\n                        printf(\"Write lease\\n\");\n                        break;\n                case F_UNLCK:\n                        printf(\"No leases\\n\");\n                        break;\n                default:\n                        printf(\"Some shit\\n\");\n                        break;\n        }\n}\n\nint main(int argc, char **argv)\n{\n        int fd, res;\n\n        fd \u003d open(argv[1], O_RDONLY);\n        if (fd \u003d\u003d -1) {\n                perror(\"Can\u0027t open file\");\n                return 1;\n        }\n\n        res \u003d fcntl(fd, F_SETLEASE, F_WRLCK);\n        if (res \u003d\u003d -1) {\n                perror(\"Can\u0027t set lease\");\n                return 1;\n        }\n\n        show_lease(fd);\n\n        if (flock(fd, LOCK_SH) \u003d\u003d -1) {\n                perror(\"Can\u0027t flock shared\");\n                return 1;\n        }\n\n        show_lease(fd);\n\n        return 0;\n}\n\nThe first call to show_lease() will show the write lease set, but\nthe second will show no leases.\n\nFix the flock adding so that the leases always stay in the head\nof this list.\n\nFound during making the flocks pid-namespaces aware.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\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": "0af1a4504699524c876361845bc2e301ecc45d0f",
      "tree": "72c6d1ac9d7dfb44d25c58eea599c2df63aa2562",
      "parents": [
        "86d0004abc87025bae1cca43c94e99a27b7bbbd6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jul 31 00:39:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:43 2007 -0700"
      },
      "message": "rename setlease to generic_setlease\n\nMake it a little more clear that this is the default implementation for\nthe setleast operation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "6924c55492c904695f13c552c461c2211f4fdd6a",
      "tree": "398f0717bedf7f533ad3e4eaeee7a441b3e67a74",
      "parents": [
        "6d34ac199a4af5c678a3a8f3275aeb2586b72da3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 11 16:22:50 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:19 2007 -0400"
      },
      "message": "locks: fix vfs_test_lock() comment\n\nThanks to Doug Chapman for pointing out that the comment here is\ninconsistent with the function prototype.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6d34ac199a4af5c678a3a8f3275aeb2586b72da3",
      "tree": "4ab6cffcfe993baa0afb2ab361a8c94ebfc3a444",
      "parents": [
        "370f6599e8bc03fd9fc6d1a1be00ae0c6373ca59"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 11 16:09:32 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:19 2007 -0400"
      },
      "message": "locks: make posix_test_lock() interface more consistent\n\nSince posix_test_lock(), like fcntl() and -\u003elock(), indicates absence or\npresence of a conflict lock by setting fl_type to, respectively, F_UNLCK\nor something other than F_UNLCK, the return value is no longer needed.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4698afe8e3a725576366f86560a8a8242b21b9f7",
      "tree": "dfa312e0a6bce21a6f502b8b9cf0844281d094a2",
      "parents": [
        "f9ffed26d6f3e6ac9988947242821579d615fda7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 04 17:21:37 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:06 2007 -0400"
      },
      "message": "locks: export setlease to filesystems\n\nExport setlease so it can used by filesystems to implement their lease\nmethods.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f9ffed26d6f3e6ac9988947242821579d615fda7",
      "tree": "f7dc037b9b1a90511751532be5ebc47c820ed407",
      "parents": [
        "a9933cea7a1d80dd9efae9f1acd857f5dce742b9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Nov 14 15:51:40 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:14:47 2007 -0400"
      },
      "message": "locks: provide a file lease method enabling cluster-coherent leases\n\nCurrently leases are only kept locally, so there\u0027s no way for a distributed\nfilesystem to enforce them against multiple clients.  We\u0027re particularly\ninterested in the case of nfsd exporting a cluster filesystem, in which\ncase nfsd needs cluster-coherent leases in order to implement delegations\ncorrectly.\n\nAlso add some documentation.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a9933cea7a1d80dd9efae9f1acd857f5dce742b9",
      "tree": "d931351589579ce141110350de9ff11154328399",
      "parents": [
        "6d5e8b05caf074ae5676ad9aaf92e381226a14a7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 07 17:09:49 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:14:12 2007 -0400"
      },
      "message": "locks: rename lease functions to reflect locks.c conventions\n\nWe\u0027ve been using the convention that vfs_foo is the function that calls\na filesystem-specific foo method if it exists, or falls back on a\ngeneric method if it doesn\u0027t; thus vfs_foo is what is called when some\nother part of the kernel (normally lockd or nfsd) wants to get a lock,\nwhereas foo is what filesystems call to use the underlying local\nfunctionality as part of their lock implementation.\n\nSo rename setlease to vfs_setlease (which will call a\nfilesystem-specific setlease after a later patch) and __setlease to\nsetlease.\n\nAlso, vfs_setlease need only be GPL-exported as long as it\u0027s only needed\nby lockd and nfsd.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6d5e8b05caf074ae5676ad9aaf92e381226a14a7",
      "tree": "6837ed4232f3eefccf054e6ae94dab70938c8e4f",
      "parents": [
        "e32b8ee27b486f682a6d13533cfe6549c8abcdef"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 31 17:03:46 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:09:27 2007 -0400"
      },
      "message": "locks: share more common lease code\n\nShare more code between setlease (used by nfsd) and fcntl.\n\nAlso some minor cleanup.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "e32b8ee27b486f682a6d13533cfe6549c8abcdef",
      "tree": "2313014defb0f65b2922df766311e41a5e0dbb98",
      "parents": [
        "d2ab0b0c4c2570921a9ec1eff1e3a5143e05b231"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 01 14:34:35 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:09:27 2007 -0400"
      },
      "message": "locks: clean up lease_alloc()\n\nReturn the newly allocated structure as the return value instead of\nusing a struct ** parameter.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d2ab0b0c4c2570921a9ec1eff1e3a5143e05b231",
      "tree": "3ca5586f765066acae9e2c20eb5578ce3220e4e8",
      "parents": [
        "87250dd26a34c65ae31d08837174222889007641"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Jun 30 12:40:32 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:09:27 2007 -0400"
      },
      "message": "locks: convert an -EINVAL return to a BUG\n\nThere\u0027s no point trying to return an error in these cases, which all represent\nbugs in the callers.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "87250dd26a34c65ae31d08837174222889007641",
      "tree": "01081d90b336d379053936e438a7bd2f6d8692bf",
      "parents": [
        "8b4a40809e5330c9da5d20107d693d92d73b31dc"
      ],
      "author": {
        "name": "david m. richter",
        "email": "richterd@citi.umich.edu",
        "time": "Wed May 09 16:10:27 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:09:27 2007 -0400"
      },
      "message": "leases: minor break_lease() comment clarification\n\nclarify that break_lease() checks for presence of any lock, not just leases.\n\nSigned-off-by: David M. Richter \u003crichterd@citi.umich.edu\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\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": "129a84de2347002f09721cda3155ccfd19fade40",
      "tree": "11dabc5695dbcd0eb814935b2c02ddeb01442932",
      "parents": [
        "a9deecba19b8f384d97f82c75379da48bccb2588"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Thu May 10 18:38:43 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 20:25:59 2007 -0700"
      },
      "message": "locks: fix F_GETLK regression (failure to find conflicts)\n\nIn 9d6a8c5c213e34c475e72b245a8eb709258e968c we changed posix_test_lock\nto modify its single file_lock argument instead of taking separate input\nand output arguments.  This makes it no longer safe to set the output\nlock\u0027s fl_type to F_UNLCK before looking for a conflict, since that\nmeans searching for a conflict against a lock with type F_UNLCK.\n\nThis fixes a regression which causes F_GETLK to incorrectly report no\nconflict on most filesystems (including any filesystem that doesn\u0027t do\nits own locking).\n\nAlso fix posix_lock_to_flock() to copy the lock type.  This isn\u0027t\nstrictly necessary, since the caller already does this; but it seems\nless likely to cause confusion in the future.\n\nThanks to Doug Chapman for the bug report.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\nAcked-by: Doug Chapman \u003cdoug.chapman@hp.com\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": "2beb6614f5e36c6165b704c167d82ef3e4ceaa0c",
      "tree": "7c5c1277f139c754d7b73a1822016574de655bd6",
      "parents": [
        "fd85b8170dabbf021987875ef7f903791f4f181e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Dec 05 23:31:28 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:49 2007 -0400"
      },
      "message": "locks: add fl_grant callback for asynchronous lock return\n\nAcquiring a lock on a cluster filesystem may require communication with\nremote hosts, and to avoid blocking lockd or nfsd threads during such\ncommunication, we allow the results to be returned asynchronously.\n\nWhen a -\u003elock() call needs to block, the file system will return\n-EINPROGRESS, and then later return the results with a call to the\nroutine in the fl_grant field of the lock_manager_operations struct.\n\nThis differs from the case when -\u003elock returns -EAGAIN to a blocking\nlock request; in that case, the filesystem calls fl_notify when the lock\nis granted, and the caller retries the original lock.  So while\nfl_notify is merely a hint to the caller that it should retry, fl_grant\nactually communicates the final result of the lock operation (with the\nlock already acquired in the succesful case).\n\nTherefore fl_grant takes a lock, a status and, for the test lock case, a\nconflicting lock.  We also allow fl_grant to return an error to the\nfilesystem, to handle the case where the fl_grant requests arrives after\nthe lock manager has already given up waiting for it.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9b9d2ab4154a42ea4a119f7d3e4e0288bfe0bb79",
      "tree": "62af6b2eff0885c26aa2af4b01890cc02cf0b2f0",
      "parents": [
        "150b393456e5a23513cace286a019e87151e47f0"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 17:52:58 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:28 2007 -0400"
      },
      "message": "locks: add lock cancel command\n\nLock managers need to be able to cancel pending lock requests.  In the case\nwhere the exported filesystem manages its own locks, it\u0027s not sufficient just\nto call posix_unblock_lock(); we need to let the filesystem know what\u0027s\nhappening too.\n\nWe do this by adding a new fcntl lock command: FL_CANCELLK.  Some day this\nmight also be made available to userspace applications that could benefit from\nan asynchronous locking api.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "150b393456e5a23513cace286a019e87151e47f0",
      "tree": "91599ec9b759f7e3c5defcb8dd361acd7288154c",
      "parents": [
        "7723ec9777d9832849b76475b1a21a2872a40d20"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 16:15:35 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 19:23:24 2007 -0400"
      },
      "message": "locks: allow {vfs,posix}_lock_file to return conflicting lock\n\nThe nfsv4 protocol\u0027s lock operation, in the case of a conflict, returns\ninformation about the conflicting lock.\n\nIt\u0027s unclear how clients can use this, so for now we\u0027re not going so far as to\nadd a filesystem method that can return a conflicting lock, but we may as well\nreturn something in the local case when it\u0027s easy to.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7723ec9777d9832849b76475b1a21a2872a40d20",
      "tree": "af712e690d1de0a2e693830f6e056455c1725a92",
      "parents": [
        "3ee17abd14c728d4e0ca7a991c58f2250cb091af"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 15:08:55 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 18:08:49 2007 -0400"
      },
      "message": "locks: factor out generic/filesystem switch from setlock code\n\nFactor out the code that switches between generic and filesystem-specific lock\nmethods; eventually we want to call this from lock managers (lockd and nfsd)\ntoo; currently they only call the generic methods.\n\nThis patch does that for all the setlk code.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3ee17abd14c728d4e0ca7a991c58f2250cb091af",
      "tree": "6f49a9893dc656fac4d5a334946ccbf4e911891f",
      "parents": [
        "9d6a8c5c213e34c475e72b245a8eb709258e968c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 21 00:58:50 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 18:06:44 2007 -0400"
      },
      "message": "locks: factor out generic/filesystem switch from test_lock\n\nFactor out the code that switches between generic and filesystem-specific lock\nmethods; eventually we want to call this from lock managers (lockd and nfsd)\ntoo; currently they only call the generic methods.\n\nThis patch does that for test_lock.\n\nNote that this hasn\u0027t been necessary until recently, because the few\nfilesystems that define -\u003elock() (nfs, cifs...) aren\u0027t exportable via NFS.\nHowever GFS (and, in the future, other cluster filesystems) need to implement\ntheir own locking to get cluster-coherent locking, and also want to be able to\nexport locking to NFS (lockd and NFSv4).\n\nSo we accomplish this by factoring out code such as this and exporting it for\nthe use of lockd and nfsd.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\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": "c2fa1b8a6c059dd08a802545fed3badc8df2adc1",
      "tree": "358b4a0dccc3d4662787732e7c760b6114daf3e9",
      "parents": [
        "226a998dbf3c6f9b85f67d08a52c5a2143ed9d88"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Feb 20 16:10:11 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 16 13:40:37 2007 -0400"
      },
      "message": "locks: create posix-to-flock helper functions\n\nFactor out a bit of messy code by creating posix-to-flock counterparts\nto the existing flock-to-posix helper functions.\n\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "226a998dbf3c6f9b85f67d08a52c5a2143ed9d88",
      "tree": "1c7c6e08a515243cc5747ef99bba24f702a18b23",
      "parents": [
        "94a05509a9e11806acd797153d03019706e466f1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 14 14:25:00 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 16 13:40:37 2007 -0400"
      },
      "message": "locks: trivial removal of unnecessary parentheses\n\nRemove some unnecessary parentheses.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05",
      "tree": "51763269e44eb9bf4d0f8c529577489902850cf9",
      "parents": [
        "b65d34fd465f19fbe2f32f2205a9a06ca7c2bdeb"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] VFS: change struct file to use struct path\n\nThis patch changes struct file to use struct path instead of having\nindependent pointers to struct dentry and struct vfsmount, and converts all\nusers of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.\n\nAdditionally, it adds two #define\u0027s to make the transition easier for users of\nthe f_dentry and f_vfsmnt.\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": "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": "609d7fa9565c754428d2520cac2accc9052e1245",
      "tree": "1c5114ec3720166fe99ce3885e8767929a8a84e0",
      "parents": [
        "bde0d2c98bcfc9acc83ac79c33a6ac1335b95a92"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:17:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:14 2006 -0700"
      },
      "message": "[PATCH] file: modify struct fown_struct to use a struct pid\n\nFile handles can be requested to send sigio and sigurg to processes.  By\ntracking the destination processes using struct pid instead of pid_t we make\nthe interface safe from all potential pid wrap around problems.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5579f8c7d7e2c9eb62b566c511b21091a778157",
      "tree": "76d3df1e8e3865bc3867f3934df081933d1e9ee6",
      "parents": [
        "4636d93b461779cd95156cc5f5d53690a5d6a07b"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jeffpc@josefsipek.net",
        "time": "Sat Sep 30 23:27:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:21 2006 -0700"
      },
      "message": "[PATCH] VFS: Use SEEK_{SET, CUR, END} instead of hardcoded values\n\nVFS: Use SEEK_{SET,CUR,END} instead of hardcoded values\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\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@osdl.org\u003e\n"
    },
    {
      "commit": "74361cb6828398a96167b3234e186fbd731e5f30",
      "tree": "4455618d0f6c8f4e17484180a8f69b529c04076c",
      "parents": [
        "1d7ea7324ae7a59f8e17e4ba76a2707c1e6f24d2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Mon Aug 14 08:54:48 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 14 13:10:59 2006 -0700"
      },
      "message": "[PATCH] fcntl(F_SETSIG) fix\n\nfcntl(F_SETSIG) no longer works on leases because\nlease_release_private_callback() gets called as the lease is copied in\norder to initialise it.\n\nThe problem is that lease_alloc() performs an unnecessary initialisation,\nwhich sets the lease_manager_ops.  Avoid the problem by allocating the\ntarget lease structure using locks_alloc_lock().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "f07f18dd6f29f11887b8d9cf7ecb736bf2f7dc62",
      "tree": "069d7fbf4ad2e5a290c27965c7714b2b0e5e8f61",
      "parents": [
        "42a2d13eee3c895d22e9d1a52b96d15ca49adabc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 29 16:38:37 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 05 13:13:18 2006 -0400"
      },
      "message": "VFS: Add support for the FL_ACCESS flag to flock_lock_file()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f475ae957db66650db66916c62604ac27409d884",
      "tree": "3b9c40dd20f1b7f3fcc59035941c4a084ce71a19",
      "parents": [
        "5e66dd6d66ffe758b39b6dcadf2330753ee1159b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 29 16:38:32 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 05 13:13:17 2006 -0400"
      },
      "message": "VFS: Allow caller to determine if BSD or posix locks were actually freed\n\nChange posix_lock_file_conf(), and flock_lock_file() so that if called\nwith an F_UNLCK argument, and the FL_EXISTS flag they will indicate\nwhether or not any locks were actually freed by returning 0 or -ENOENT.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b0904e147f7cbe4be3b4dae49ddccd627bb66f16",
      "tree": "81bb0e45d46a3bb038d953f616fd6e32d7ca5e4b",
      "parents": [
        "75e1fcc0b18df0a65ab113198e9dc0e98999a08c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 23 02:05:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:03 2006 -0700"
      },
      "message": "[PATCH] fs/locks.c: make posix_locks_deadlock() static\n\nWe can now make posix_locks_deadlock() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75e1fcc0b18df0a65ab113198e9dc0e98999a08c",
      "tree": "3ac0d0d3120cbca4ee9734494e2c9a4e0775ac4f",
      "parents": [
        "ff7b86b82083f24b8637dff1528c7101c18c7f39"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] vfs: add lock owner argument to flush operation\n\nPass the POSIX lock owner ID to the flush operation.\n\nThis is useful for filesystems which don\u0027t want to store any locking state\nin inode-\u003ei_flock but want to handle locking/unlocking POSIX locks\ninternally.  FUSE is one such filesystem but I think it possible that some\nnetwork filesystems would need this also.\n\nAlso add a flag to indicate that a POSIX locking request was generated by\nclose(), so filesystems using the above feature won\u0027t send an extra locking\nrequest in this case.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ff7b86b82083f24b8637dff1528c7101c18c7f39",
      "tree": "be80c94e4c1410b51190b617fa27caf33b0ba60b",
      "parents": [
        "39005d022ad221b76dc2de0ac62ef475a796433b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] locks: clean up locks_remove_posix()\n\nlocks_remove_posix() can use posix_lock_file() instead of doing the lock\nremoval by hand.  posix_lock_file() now does exacly the same.\n\nThe comment about pids no longer applies, posix_lock_file() takes only the\nowner into account.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39005d022ad221b76dc2de0ac62ef475a796433b",
      "tree": "e0a36fec7076d48764f0588b9ce09ce8e9f067ff",
      "parents": [
        "0d9a490abe1f69fda220f7866f6f23af41daa128"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] locks: don\u0027t do unnecessary allocations\n\nposix_lock_file() always allocates new locks in advance, even if it\u0027s easy to\ndetermine that no allocations will be needed.\n\nOptimize these cases:\n\n - FL_ACCESS flag is set\n\n - Unlocking the whole range\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "0d9a490abe1f69fda220f7866f6f23af41daa128"
}
