)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "0d9a490abe1f69fda220f7866f6f23af41daa128",
      "tree": "499b7f9c44bb5a079f8ba303fefba402e603c314",
      "parents": [
        "090d2b185d8680fc26a2eaf4245d4171dcf4baf1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:09 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 unnecessarily fail posix lock operations\n\nposix_lock_file() was too cautious, failing operations on OOM, even if they\ndidn\u0027t actually require an allocation.\n\nThis has the disadvantage, that a failing unlock on process exit could lead to\na memory leak.  There are two possibilites for this:\n\n- filesystem implements .lock() and calls back to posix_lock_file().  On\ncleanup of files_struct locks_remove_posix() is called which should remove all\nlocks belonging to files_struct.  However if filesystem calls\nposix_lock_file() which fails, then those locks will never be freed.\n\n- if a file is closed while a lock is blocked, then after acquiring\nfcntl_setlk() will undo the lock.  But this unlock itself might fail on OOM,\nagain possibly leaking the lock.\n\nThe solution is to move the checking of the allocations until after it is sure\nthat they will be needed.  This will solve the above problem since unlock will\nalways succeed unless it splits an existing region.\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": "c89681ed7d0e4a61d35bdc12c06c6733b718b2cb",
      "tree": "170d7c54d578480ba231dd690243aa21067ca253",
      "parents": [
        "09d967c6f32b35eab15b45862ae16e4f06259d8e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Jun 22 14:47:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:05:57 2006 -0700"
      },
      "message": "[PATCH] remove steal_locks()\n\nThis patch removes the steal_locks() function.\n\nsteal_locks() doesn\u0027t work correctly with any filesystem that does it\u0027s own\nlock management, including NFS, CIFS, etc.\n\nIn addition it has weird semantics on local filesystems in case tasks\nsharing file-descriptor tables are doing POSIX locking operations in\nparallel to execve().\n\nThe steal_locks() function has an effect on applications doing:\n\nclone(CLONE_FILES)\n  /* in child */\n  lock\n  execve\n  lock\n\nPOSIX locks acquired before execve (by \"child\", \"parent\" or any further\ntask sharing files_struct) will after the execve be owned exclusively by\n\"child\".\n\nAccording to Chris Wright some LSB/LTP kind of suite triggers without the\nstealing behavior, but there\u0027s no known real-world application that would\nalso fail.\n\nApps using NPTL are not affected, since all other threads are killed before\nexecve.\n\nApps using LinuxThreads are only affected if they\n\n  - have multiple threads during exec (LinuxThreads doesn\u0027t kill other\n    threads, the app may do it with pthread_kill_other_threads_np())\n  - rely on POSIX locks being inherited across exec\n\nBoth conditions are documented, but not their interaction.\n\nApps using clone() natively are affected if they\n\n  - use clone(CLONE_FILES)\n  - rely on POSIX locks being inherited across exec\n\nThe above scenarios are unlikely, but possible.\n\nIf the patch is vetoed, there\u0027s a plan B, that involves mostly keeping the\nweird stealing semantics, but changing the way lock ownership is handled so\nthat network and local filesystems work consistently.\n\nThat would add more complexity though, so this solution seems to be\npreferred by most people.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9cedc194a7735e5d74ad26d3825247dc65a4d98e",
      "tree": "973541332ad3428448be7636eb78e2106aafb869",
      "parents": [
        "eb35cf60e462491249166182e3e755d3d5d91a28"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Wed Jun 14 17:59:35 2006 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 14 08:59:44 2006 -0700"
      },
      "message": "[PATCH] Return error in case flock_lock_file failure\n\nIf flock_lock_file() failed to allocate flock with locks_alloc_lock()\nthen \"error \u003d 0\" is returned. Need to return some non-zero.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75dff55af9a989293e9f9bacf049858f4262bc08",
      "tree": "0de0ec3f7910ef24201ae2eaf3c3f4ae4cfcb7f7",
      "parents": [
        "9d21f09ca03d1142f1988001f228d02581d8986c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 07 23:02:42 2006 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 08 08:07:17 2006 -0700"
      },
      "message": "[PATCH] fs/locks.c: Fix lease_init\n\nIt is insane to be giving lease_init() the task of freeing the lock it is\nsupposed to initialise, given that the lock is not guaranteed to be\nallocated on the stack. This causes lockups in fcntl_setlease().\nProblem diagnosed by Daniel Hokka Zakrisson \u003cdaniel@hozac.com\u003e\n\nAlso fix a slab leak in __setlease() due to an uninitialised return value.\nProblem diagnosed by BjÃ¶rn Steinbrink.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Daniel Hokka Zakrisson \u003cdaniel@hozac.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca99c1da080345e227cfb083c330a184d42e27f3",
      "tree": "e417b4c456ae31dc1dde8027b6be44a1a9f19395",
      "parents": [
        "fb30d64568fd8f6a21afef987f11852a109723da"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Tue Apr 18 22:21:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:51 2006 -0700"
      },
      "message": "[PATCH] Fix file lookup without ref\n\nThere are places in the kernel where we look up files in fd tables and\naccess the file structure without holding refereces to the file.  So, we\nneed special care to avoid the race between looking up files in the fd\ntable and tearing down of the file in another CPU.  Otherwise, one might\nsee a NULL f_dentry or such torn down version of the file.  This patch\nfixes those special places where such a race may happen.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "993dfa8776308dcfd311cf77a3bbed4aa11e9868",
      "tree": "2e90eabd31d3e8db1f2f3c95494109ff29a78237",
      "parents": [
        "7a2bd3f7efa86e8b56482a8f8948c8b222064a67"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 31 02:30:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:56 2006 -0800"
      },
      "message": "[PATCH] fs/locks.c: Fix sys_flock() race\n\nsys_flock() currently has a race which can result in a double free in the\nmulti-thread case.\n\nThread 1\t\t\tThread 2\n\nsys_flock(file, LOCK_EX)\n\t\t\t\tsys_flock(file, LOCK_UN)\n\nIf Thread 2 removes the lock from inode-\u003ei_lock before Thread 1 tests for\nlist_empty(\u0026lock-\u003efl_link) at the end of sys_flock, then both threads will\nend up calling locks_free_lock for the same lock.\n\nFix is to make flock_lock_file() do the same as posix_lock_file(), namely\nto make a copy of the request, so that the caller can always free the lock.\n\nThis also has the side-effect of fixing up a reference problem in the\nlockd handling of flock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ce29646ebe352587e3b3160d599010c5da1b9dd",
      "tree": "a4b080ded00de2264a4c94245da79488ea4d8a56",
      "parents": [
        "da2e9e1ff40c863a12803c32209baaded3512433"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Mar 31 02:30:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:52 2006 -0800"
      },
      "message": "[PATCH] locks: don\u0027t panic\n\nDon\u0027t panic!  Just BUG_ON().\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5842add2f3b519111b6401f3a35862bd00a3aa7e",
      "tree": "299e5653ec2b7dfc9fa565920d7320bbf1c9c07e",
      "parents": [
        "6dc0fe8f8b40854982929e4f24d8c65115769b60"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Sun Mar 26 01:37:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] VFS,fs/locks.c,NFSD4: add race_free posix_lock_file_conf() interface\n\nLockd and the NFSv4 server both exercise a race condition where\nposix_test_lock() is called either before or after posix_lock_file() to\ndeal with a denied lock request due to a conflicting lock.\n\nRemove the race condition for the NFSv4 server by adding a new conflicting\nlock parameter to __posix_lock_file() , changing the name to\n__posix_lock_file_conf().\n\nKeep posix_lock_file() interface, add posix_lock_conf() interface, both\ncall __posix_lock_file_conf().\n\n[akpm@osdl.org: Put the EXPORT_SYMBOL() where it belongs]\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6dc0fe8f8b40854982929e4f24d8c65115769b60",
      "tree": "a3489bf4765799778238e1fee3de71ec6a0e1d73",
      "parents": [
        "fa3536cc144c1298f2ed9416c33f3b77fa2cd37a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Sun Mar 26 01:37:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] VFS,fs/locks.c: cleanup locks_insert_block\n\nBUG instead of handling a case that should never happen.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa3536cc144c1298f2ed9416c33f3b77fa2cd37a",
      "tree": "5484541319b86ae7dac0def4db7925f7cc7008e7",
      "parents": [
        "878a9f30d7b13015f3aa4534d7877d985f150183"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 26 01:37:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] Use __read_mostly on some hot fs variables\n\nI discovered on oprofile hunting on a SMP platform that dentry lookups were\nslowed down because d_hash_mask, d_hash_shift and dentry_hashtable were in\na cache line that contained inodes_stat.  So each time inodes_stats is\nchanged by a cpu, other cpus have to refill their cache line.\n\nThis patch moves some variables to the __read_mostly section, in order to\navoid false sharing.  RCU dentry lookups can go full speed.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "26bcbf965f857c710adafd16cf424f043006b5dd",
      "tree": "fa3c1e4ba07ab3d1e4e61b27c7579c57fd2d5c65",
      "parents": [
        "04266473ecf5cdca242201d9f1ed890afe070fb6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "message": "lockd: stop abusing file_lock_list\n\nCurrently lockd directly access the file_lock_list from fs/locks.c.\nIt does so to mark locks granted or reclaimable.  This is very\nsuboptimal, because a) lockd needs to poke into locks.c internals, and\nb) it needs to iterate over all locks in the system for marking locks\ngranted or reclaimable.\n\nThis patch adds lists for granted and reclaimable locks to the nlm_host\nstructure instead, and adds locks to those.\n\nnlmclnt_lock:\n\tnow adds the lock to h_granted instead of setting the\n\tNFS_LCK_GRANTED, still O(1)\n\nnlmclnt_mark_reclaim:\n\tgoes away completely, replaced by a list_splice_init.\n\tComplexity reduced from O(locks in the system) to O(1)\n\nreclaimer:\n\titerates over h_reclaim now, complexity reduced from\n\tO(locks in the system) to O(locks per nlm_host)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0996905f9301c2ff4c021982c42a15b35e74bf1c",
      "tree": "29bffccbd76c2fc0659f6d94a95f95b2d940f7a5",
      "parents": [
        "3feb2d49394b7874348a6e43c076b780c1d222c5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:38 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:38 2006 -0500"
      },
      "message": "lockd: posix_test_lock() should not call locks_copy_lock()\n\nThe caller of posix_test_lock() should never need to look at the lock\nprivate data, so do not copy that information. This also means that there\nis no need to call the fl_release_private methods.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8dc7c3115b611c00006eac3ee5b108296432aab7",
      "tree": "be44c59907cbdcb6fdf46d0ad9cc140af757acfc",
      "parents": [
        "2e0af86f618c697b44e2d67dff151256c58201c4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks,lockd: fix race in nlmsvc_testlock\n\nposix_test_lock() returns a pointer to a struct file_lock which is unprotected\nand can be removed while in use by the caller.  Move the conflicting lock from\nthe return to a parameter, and copy the conflicting lock.\n\nIn most cases the caller ends up putting the copy of the conflicting lock on\nthe stack.  On i386, sizeof(struct file_lock) appears to be about 100 bytes.\nWe\u0027re assuming that\u0027s reasonable.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2e0af86f618c697b44e2d67dff151256c58201c4",
      "tree": "967c708244ca190cc00d1c943704002467546151",
      "parents": [
        "a85f193e2fb7d53e48ae6a9d9ea990bfb4cea555"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks: remove unused posix_block_lock\n\nposix_lock_file() is used to add a blocked lock to Lockd\u0027s block, so\nposix_block_lock() is no longer needed.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "47831f35b83e43c804215712dd0c834c92e8a441",
      "tree": "3345007cf56b73495386a59deb6e3d7caf01f875",
      "parents": [
        "1dd594b21b2d98e56f2b1fe92bb222276b28de41"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:05 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:05 2006 -0500"
      },
      "message": "VFS: Fix __posix_lock_file() copy of private lock area\n\nThe struct file_lock-\u003efl_u area must be copied using the fl_copy_lock()\noperation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "33443c42f4ffa5ca23b3323234bcb1a78e85d9db",
      "tree": "b524ba077d49afb7633088c66a2ef77fede0ccd7",
      "parents": [
        "5d2bea4582d20cb24085152acaa29b95c05cdcf8"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:05:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:10 2006 -0800"
      },
      "message": "[PATCH] tiny: Uninline some fslocks.c functions\n\nuninline some file locking functions\n\nadd/remove: 3/0 grow/shrink: 0/15 up/down: 256/-1525 (-1269)\nfunction                                     old     new   delta\nlocks_free_lock                                -     134    +134\nposix_same_owner                               -      69     +69\n__locks_delete_block                           -      53     +53\nposix_locks_conflict                         126     108     -18\nlocks_remove_posix                           266     237     -29\nlocks_wake_up_blocks                         121      87     -34\nlocks_block_on_timeout                        83      47     -36\nlocks_insert_block                           157     120     -37\nlocks_delete_block                            62      23     -39\nposix_unblock_lock                           104      59     -45\nposix_locks_deadlock                         162     100     -62\nlocks_delete_lock                            228     119    -109\nsys_flock                                    338     217    -121\n__break_lease                                600     474    -126\nlease_init                                   252     122    -130\nfcntl_setlk64                                793     649    -144\nfcntl_setlk                                  793     649    -144\n__posix_lock_file                           1477    1026    -451\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64a318ee2af9000df482d7a125c3b3e1f1007404",
      "tree": "7b39e558cccce484635dc847a016bbcb5e83abdb",
      "parents": [
        "2c5acd2e1a73cad59203a1bace21e6b03f2920a9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 03 09:55:46 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:54 2006 -0500"
      },
      "message": "NLM: Further cancel fixes\n\n If the server receives an NLM cancel call and finds no waiting lock to\n cancel, then chances are the lock has already been applied, and the client\n just hadn\u0027t yet processed the NLM granted callback before it sent the\n cancel.\n\n The Open Group text, for example, perimts a server to return either success\n (LCK_GRANTED) or failure (LCK_DENIED) in this case.  But returning an error\n seems more helpful; the client may be able to use it to recognize that a\n race has occurred and to recover from the race.\n\n So, modify the relevant functions to return an error in this case.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5996a298da43a03081e9ba2116983d173001c862",
      "tree": "533a3289102051cc3e033eff5730301776e64d31",
      "parents": [
        "f232142cc21127c829559923eb405d1bcb2e2278"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 03 09:55:44 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:53 2006 -0500"
      },
      "message": "NLM: don\u0027t unlock on cancel requests\n\n Currently when lockd gets an NLM_CANCEL request, it also does an unlock for\n the same range.  This is incorrect.\n\n The Open Group documentation says that \"This procedure cancels an\n *outstanding* blocked lock request.\"  (Emphasis mine.)\n\n Also, consider a client that holds a lock on the first byte of a file, and\n requests a lock on the entire file.  If the client cancels that request\n (perhaps because the requesting process is signalled), the server shouldn\u0027t\n apply perform an unlock on the entire file, since that will also remove the\n previous lock that the client was already granted.\n\n Or consider a lock request that actually *downgraded* an exclusive lock to\n a shared lock.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "f3a9388e4ebea57583272007311fffa26ebbb305"
}
