)]}'
{
  "log": [
    {
      "commit": "f466c6fdb3b1f043ff1977a8d2a1d0cd4dc164fa",
      "tree": "4ebd1b27da5be1a77c6d095b2d0066ab8fb2c5e0",
      "parents": [
        "a8a4b79b53fc7cbb023afedf58b04dd4e9bbb114"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 17 01:16:43 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:43 2012 -0400"
      },
      "message": "move private bits of reiserfs_fs.h to fs/reiserfs/reiserfs.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "c4a62ca362258d98f42efb282cfbf9b61caffdbe",
      "tree": "017484107efa26789ddd96579fcef09d874333c0",
      "parents": [
        "0719d3434747889b314a1e8add776418c4148bcf"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 30 03:20:19 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jan 02 01:54:37 2010 +0100"
      },
      "message": "reiserfs: Warn on lock relax if taken recursively\n\nWhen we relax the reiserfs lock to avoid creating unwanted\ndependencies against others locks while grabbing these,\nwe want to ensure it has not been taken recursively, otherwise\nthe lock won\u0027t be really relaxed. Only its depth will be decreased.\nThe unwanted dependency would then actually happen.\n\nTo prevent from that, add a reiserfs_lock_check_recursive() call\nin the places that need it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80503185989b2dd84170bb842e23d3fd45ebdf40",
      "tree": "5b1a862071199421ba0427137067b8ed14a0c843",
      "parents": [
        "7e94277050e31aa4204060f03953bba72598cf7d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 25 04:18:06 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:30 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: panic in case of lock imbalance\n\nUntil now, trying to unlock the reiserfs write lock whereas the current\ntask doesn\u0027t hold it lead to a simple warning.\nWe should actually warn and panic in this case to avoid the user datas\nto reach an unstable state.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Laurent Riffard \u003claurent.riffard@free.fr\u003e\n"
    },
    {
      "commit": "daf88c898312a22b5385655bc6e0b064eaa2efba",
      "tree": "016c432fc26c174d5aee3647e54f2aafb690dceb",
      "parents": [
        "a412f9efdd6424bf4bf28c8e8c92060b5e975482"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Apr 14 05:34:23 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:02 2009 +0200"
      },
      "message": "kill-the-BKL/reiserfs: provide a tool to lock only once the write lock\n\nSometimes we don\u0027t want to recursively hold the per superblock write\nlock because we want to be sure it is actually released when we come\nto sleep.\n\nThis patch introduces the necessary tools for that.\n\nreiserfs_write_lock_once() does the same job than reiserfs_write_lock()\nexcept that it won\u0027t try to acquire recursively the lock if the current\ntask already owns it. Also the lock_depth before the call of this function\nis returned.\n\nreiserfs_write_unlock_once() unlock only if reiserfs_write_lock_once()\nreturned a depth equal to -1, ie: only if it actually locked.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nLKML-Reference: \u003c1239680065-25013-2-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8ebc423238341b52912c7295b045a32477b33f09",
      "tree": "39677401de0df98c09ca888c87d85033b6fe93c9",
      "parents": [
        "74fca6a42863ffacaf7ba6f1936a9f228950f657"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Apr 07 04:19:49 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:17:59 2009 +0200"
      },
      "message": "reiserfs: kill-the-BKL\n\nThis patch is an attempt to remove the Bkl based locking scheme from\nreiserfs and is intended.\n\nIt is a bit inspired from an old attempt by Peter Zijlstra:\n\n   http://lkml.indiana.edu/hypermail/linux/kernel/0704.2/2174.html\n\nThe bkl is heavily used in this filesystem to prevent from\nconcurrent write accesses on the filesystem.\n\nReiserfs makes a deep use of the specific properties of the Bkl:\n\n- It can be acqquired recursively by a same task\n- It is released on the schedule() calls and reacquired when schedule() returns\n\nThe two properties above are a roadmap for the reiserfs write locking so it\u0027s\nvery hard to simply replace it with a common mutex.\n\n- We need a recursive-able locking unless we want to restructure several blocks\n  of the code.\n- We need to identify the sites where the bkl was implictly relaxed\n  (schedule, wait, sync, etc...) so that we can in turn release and\n  reacquire our new lock explicitly.\n  Such implicit releases of the lock are often required to let other\n  resources producer/consumer do their job or we can suffer unexpected\n  starvations or deadlocks.\n\nSo the new lock that replaces the bkl here is a per superblock mutex with a\nspecific property: it can be acquired recursively by a same task, like the\nbkl.\n\nFor such purpose, we integrate a lock owner and a lock depth field on the\nsuperblock information structure.\n\nThe first axis on this patch is to turn reiserfs_write_(un)lock() function\ninto a wrapper to manage this mutex. Also some explicit calls to\nlock_kernel() have been converted to reiserfs_write_lock() helpers.\n\nThe second axis is to find the important blocking sites (schedule...(),\nwait_on_buffer(), sync_dirty_buffer(), etc...) and then apply an explicit\nrelease of the write lock on these locations before blocking. Then we can\nsafely wait for those who can give us resources or those who need some.\nTypically this is a fight between the current writer, the reiserfs workqueue\n(aka the async commiter) and the pdflush threads.\n\nThe third axis is a consequence of the second. The write lock is usually\non top of a lock dependency chain which can include the journal lock, the\nflush lock or the commit lock. So it\u0027s dangerous to release and trying to\nreacquire the write lock while we still hold other locks.\n\nThis is fine with the bkl:\n\n      T1                       T2\n\nlock_kernel()\n    mutex_lock(A)\n    unlock_kernel()\n    // do something\n                            lock_kernel()\n                                mutex_lock(A) -\u003e already locked by T1\n                                schedule() (and then unlock_kernel())\n    lock_kernel()\n    mutex_unlock(A)\n    ....\n\nThis is not fine with a mutex:\n\n      T1                       T2\n\nmutex_lock(write)\n    mutex_lock(A)\n    mutex_unlock(write)\n    // do something\n                           mutex_lock(write)\n                              mutex_lock(A) -\u003e already locked by T1\n                              schedule()\n\n    mutex_lock(write) -\u003e already locked by T2\n    deadlock\n\nThe solution in this patch is to provide a helper which releases the write\nlock and sleep a bit if we can\u0027t lock a mutex that depend on it. It\u0027s another\nsimulation of the bkl behaviour.\n\nThe last axis is to locate the fs callbacks that are called with the bkl held,\naccording to Documentation/filesystem/Locking.\n\nThose are:\n\n- reiserfs_remount\n- reiserfs_fill_super\n- reiserfs_put_super\n\nReiserfs didn\u0027t need to explicitly lock because of the context of these callbacks.\nBut now we must take care of that with the new locking.\n\nAfter this patch, reiserfs suffers from a slight performance regression (for now).\nOn UP, a high volume write with dd reports an average of 27 MB/s instead\nof 30 MB/s without the patch applied.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Bron Gondwana \u003cbrong@fastmail.fm\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nLKML-Reference: \u003c1239070789-13354-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
