)]}'
{
  "log": [
    {
      "commit": "9d8117e72bf453dd9d85e0cd322ce4a0f8bccbc0",
      "tree": "b04c93fa9d41db9802c576f8dfaf74edb42ebc60",
      "parents": [
        "3f259d092c7a2fdf217823e8f1838530adb0cdb0"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 30 15:15:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 01 10:50:59 2010 -0700"
      },
      "message": "reiserfs: fix unwanted reiserfs lock recursion\n\nPrevent from recursively locking the reiserfs lock in reiserfs_unpack()\nbecause we may call journal_begin() that requires the lock to be taken\nonly once, otherwise it won\u0027t be able to release the lock while taking\nother mutexes, ending up in inverted dependencies between the journal\nmutex and the reiserfs lock for example.\n\nThis fixes:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible circular locking dependency detected ]\n  2.6.35.4.4a #3\n  -------------------------------------------------------\n  lilo/1620 is trying to acquire lock:\n   (\u0026journal-\u003ej_mutex){+.+...}, at: [\u003cd0325bff\u003e] do_journal_begin_r+0x7f/0x340 [reiserfs]\n\n  but task is already holding lock:\n   (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cd032a278\u003e] reiserfs_write_lock+0x28/0x40 [reiserfs]\n\n  which lock already depends on the new lock.\n\n  the existing dependency chain (in reverse order) is:\n\n  -\u003e #1 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n         [\u003cc10562b7\u003e] lock_acquire+0x67/0x80\n         [\u003cc12facad\u003e] __mutex_lock_common+0x4d/0x410\n         [\u003cc12fb0c8\u003e] mutex_lock_nested+0x18/0x20\n         [\u003cd032a278\u003e] reiserfs_write_lock+0x28/0x40 [reiserfs]\n         [\u003cd0325c06\u003e] do_journal_begin_r+0x86/0x340 [reiserfs]\n         [\u003cd0325f77\u003e] journal_begin+0x77/0x140 [reiserfs]\n         [\u003cd0315be4\u003e] reiserfs_remount+0x224/0x530 [reiserfs]\n         [\u003cc10b6a20\u003e] do_remount_sb+0x60/0x110\n         [\u003cc10cee25\u003e] do_mount+0x625/0x790\n         [\u003cc10cf014\u003e] sys_mount+0x84/0xb0\n         [\u003cc12fca3d\u003e] syscall_call+0x7/0xb\n\n  -\u003e #0 (\u0026journal-\u003ej_mutex){+.+...}:\n         [\u003cc10560f6\u003e] __lock_acquire+0x1026/0x1180\n         [\u003cc10562b7\u003e] lock_acquire+0x67/0x80\n         [\u003cc12facad\u003e] __mutex_lock_common+0x4d/0x410\n         [\u003cc12fb0c8\u003e] mutex_lock_nested+0x18/0x20\n         [\u003cd0325bff\u003e] do_journal_begin_r+0x7f/0x340 [reiserfs]\n         [\u003cd0325f77\u003e] journal_begin+0x77/0x140 [reiserfs]\n         [\u003cd0326271\u003e] reiserfs_persistent_transaction+0x41/0x90 [reiserfs]\n         [\u003cd030d06c\u003e] reiserfs_get_block+0x22c/0x1530 [reiserfs]\n         [\u003cc10db9db\u003e] __block_prepare_write+0x1bb/0x3a0\n         [\u003cc10dbbe6\u003e] block_prepare_write+0x26/0x40\n         [\u003cd030b738\u003e] reiserfs_prepare_write+0x88/0x170 [reiserfs]\n         [\u003cd03294d6\u003e] reiserfs_unpack+0xe6/0x120 [reiserfs]\n         [\u003cd0329782\u003e] reiserfs_ioctl+0x272/0x320 [reiserfs]\n         [\u003cc10c3188\u003e] vfs_ioctl+0x28/0xa0\n         [\u003cc10c3bbd\u003e] do_vfs_ioctl+0x32d/0x5c0\n         [\u003cc10c3eb3\u003e] sys_ioctl+0x63/0x70\n         [\u003cc12fca3d\u003e] syscall_call+0x7/0xb\n\n  other info that might help us debug this:\n\n  2 locks held by lilo/1620:\n   #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#8){+.+.+.}, at: [\u003cd032945a\u003e] reiserfs_unpack+0x6a/0x120 [reiserfs]\n   #1:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cd032a278\u003e] reiserfs_write_lock+0x28/0x40 [reiserfs]\n\n  stack backtrace:\n  Pid: 1620, comm: lilo Not tainted 2.6.35.4.4a #3\n  Call Trace:\n   [\u003cc10560f6\u003e] __lock_acquire+0x1026/0x1180\n   [\u003cc10562b7\u003e] lock_acquire+0x67/0x80\n   [\u003cc12facad\u003e] __mutex_lock_common+0x4d/0x410\n   [\u003cc12fb0c8\u003e] mutex_lock_nested+0x18/0x20\n   [\u003cd0325bff\u003e] do_journal_begin_r+0x7f/0x340 [reiserfs]\n   [\u003cd0325f77\u003e] journal_begin+0x77/0x140 [reiserfs]\n   [\u003cd0326271\u003e] reiserfs_persistent_transaction+0x41/0x90 [reiserfs]\n   [\u003cd030d06c\u003e] reiserfs_get_block+0x22c/0x1530 [reiserfs]\n   [\u003cc10db9db\u003e] __block_prepare_write+0x1bb/0x3a0\n   [\u003cc10dbbe6\u003e] block_prepare_write+0x26/0x40\n   [\u003cd030b738\u003e] reiserfs_prepare_write+0x88/0x170 [reiserfs]\n   [\u003cd03294d6\u003e] reiserfs_unpack+0xe6/0x120 [reiserfs]\n   [\u003cd0329782\u003e] reiserfs_ioctl+0x272/0x320 [reiserfs]\n   [\u003cc10c3188\u003e] vfs_ioctl+0x28/0xa0\n   [\u003cc10c3bbd\u003e] do_vfs_ioctl+0x32d/0x5c0\n   [\u003cc10c3eb3\u003e] sys_ioctl+0x63/0x70\n   [\u003cc12fca3d\u003e] syscall_call+0x7/0xb\n\nReported-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nTested-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: All since 2.6.32 \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": "3f259d092c7a2fdf217823e8f1838530adb0cdb0",
      "tree": "3cb2d34157e14b209f47e458be919144780974a0",
      "parents": [
        "f556cb078a3a11f6bcb203040fe014caaa6710c4"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 30 15:15:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 01 10:50:59 2010 -0700"
      },
      "message": "reiserfs: fix dependency inversion between inode and reiserfs mutexes\n\nThe reiserfs mutex already depends on the inode mutex, so we can\u0027t lock\nthe inode mutex in reiserfs_unpack() without using the safe locking API,\nbecause reiserfs_unpack() is always called with the reiserfs mutex locked.\n\nThis fixes:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible circular locking dependency detected ]\n  2.6.35c #13\n  -------------------------------------------------------\n  lilo/1606 is trying to acquire lock:\n   (\u0026sb-\u003es_type-\u003ei_mutex_key#8){+.+.+.}, at: [\u003cd0329450\u003e] reiserfs_unpack+0x60/0x110 [reiserfs]\n\n  but task is already holding lock:\n   (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cd032a268\u003e] reiserfs_write_lock+0x28/0x40 [reiserfs]\n\n  which lock already depends on the new lock.\n\n  the existing dependency chain (in reverse order) is:\n\n  -\u003e #1 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n         [\u003cc1056347\u003e] lock_acquire+0x67/0x80\n         [\u003cc12f083d\u003e] __mutex_lock_common+0x4d/0x410\n         [\u003cc12f0c58\u003e] mutex_lock_nested+0x18/0x20\n         [\u003cd032a268\u003e] reiserfs_write_lock+0x28/0x40 [reiserfs]\n         [\u003cd0329e9a\u003e] reiserfs_lookup_privroot+0x2a/0x90 [reiserfs]\n         [\u003cd0316b81\u003e] reiserfs_fill_super+0x941/0xe60 [reiserfs]\n         [\u003cc10b7d17\u003e] get_sb_bdev+0x117/0x170\n         [\u003cd0313e21\u003e] get_super_block+0x21/0x30 [reiserfs]\n         [\u003cc10b74ba\u003e] vfs_kern_mount+0x6a/0x1b0\n         [\u003cc10b7659\u003e] do_kern_mount+0x39/0xe0\n         [\u003cc10cebe0\u003e] do_mount+0x340/0x790\n         [\u003cc10cf0b4\u003e] sys_mount+0x84/0xb0\n         [\u003cc12f25cd\u003e] syscall_call+0x7/0xb\n\n  -\u003e #0 (\u0026sb-\u003es_type-\u003ei_mutex_key#8){+.+.+.}:\n         [\u003cc1056186\u003e] __lock_acquire+0x1026/0x1180\n         [\u003cc1056347\u003e] lock_acquire+0x67/0x80\n         [\u003cc12f083d\u003e] __mutex_lock_common+0x4d/0x410\n         [\u003cc12f0c58\u003e] mutex_lock_nested+0x18/0x20\n         [\u003cd0329450\u003e] reiserfs_unpack+0x60/0x110 [reiserfs]\n         [\u003cd0329772\u003e] reiserfs_ioctl+0x272/0x320 [reiserfs]\n         [\u003cc10c3228\u003e] vfs_ioctl+0x28/0xa0\n         [\u003cc10c3c5d\u003e] do_vfs_ioctl+0x32d/0x5c0\n         [\u003cc10c3f53\u003e] sys_ioctl+0x63/0x70\n         [\u003cc12f25cd\u003e] syscall_call+0x7/0xb\n\n  other info that might help us debug this:\n\n  1 lock held by lilo/1606:\n   #0:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cd032a268\u003e] reiserfs_write_lock+0x28/0x40 [reiserfs]\n\n  stack backtrace:\n  Pid: 1606, comm: lilo Not tainted 2.6.35c #13\n  Call Trace:\n   [\u003cc1056186\u003e] __lock_acquire+0x1026/0x1180\n   [\u003cc1056347\u003e] lock_acquire+0x67/0x80\n   [\u003cc12f083d\u003e] __mutex_lock_common+0x4d/0x410\n   [\u003cc12f0c58\u003e] mutex_lock_nested+0x18/0x20\n   [\u003cd0329450\u003e] reiserfs_unpack+0x60/0x110 [reiserfs]\n   [\u003cd0329772\u003e] reiserfs_ioctl+0x272/0x320 [reiserfs]\n   [\u003cc10c3228\u003e] vfs_ioctl+0x28/0xa0\n   [\u003cc10c3c5d\u003e] do_vfs_ioctl+0x32d/0x5c0\n   [\u003cc10c3f53\u003e] sys_ioctl+0x63/0x70\n   [\u003cc12f25cd\u003e] syscall_call+0x7/0xb\n\nReported-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nTested-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.32 and later]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0baec1b63632f25ea8101b76edaca0accc061ec",
      "tree": "d4395fde34e5c1d714c14e17ffe38f280ebadb0f",
      "parents": [
        "6c28705418de012216161b14a2ff1dda3da3d786"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Wed Jan 06 23:09:50 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 07 14:03:18 2010 +0100"
      },
      "message": "reiserfs: Fix unreachable statement\n\nStanse found an unreachable statement in reiserfs_ioctl. There is a\nif followed by error assignment and `break\u0027 with no braces. Add the\nbraces so that we don\u0027t break every time, but only in error case,\nso that REISERFS_IOC_SETVERSION actually works when it returns no\nerror.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Reiserfs \u003creiserfs-devel@vger.kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "205cb37b89ab37db553907e5ac17962eec561804",
      "tree": "1ba8dcbef0112fbd0d77d28a317c950b11c19563",
      "parents": [
        "ac78a07893d24d95ff5f39d0433c25210f224f07"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 23:22:17 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 23:28:12 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: definitely drop the bkl from reiserfs_ioctl()\n\nThe reiserfs ioctl path doesn\u0027t need the big kernel lock anymore , now\nthat the filesystem synchronizes through its own lock.\n\nWe can then turn reiserfs_ioctl() into an unlocked_ioctl callback.\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\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ac78a07893d24d95ff5f39d0433c25210f224f07",
      "tree": "ac48d2a828ef6daa62d5f5373cc14ba658b2a945",
      "parents": [
        "48f6ba5e691948caba2e7bc362153fb28e4f1e09"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 23:08:43 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 23:27:57 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: always lock the ioctl path\n\nReiserfs uses the ioctl callback for its file operations, which means\nthat its ioctl path is still locked by the bkl, this was synchronizing\nwith the rest of the filsystem operations. We have changed that by\nlocking it with the new reiserfs lock but we do that only from the\ncompat_ioctl callback.\n\nFix that by locking reiserfs_ioctl() everytime.\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\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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"
    },
    {
      "commit": "0222e6571c332563a48d4cf5487b67feabe60b5e",
      "tree": "44829ca0a4b1343edec08d4f70696cb0d3218975",
      "parents": [
        "3cd6dbe6feb9b32347e6c6f25a27f0cde9d50418"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:44 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: strip trailing whitespace\n\nThis patch strips trailing whitespace from the reiserfs code.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5dee5c395062a55236318ac4eec1f4ebb9de6db",
      "tree": "2481afd9fbdd1df106d71a41cce2b08380f21d44",
      "parents": [
        "a2fe594fa3732298947377409b5d8111b14f56ec"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 28 02:16:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:46 2008 -0700"
      },
      "message": "reiserfs: unpack tails on quota files\n\nQuota files cannot have tails because quota_write and quota_read functions do\nnot support them.  So far when quota files did have tail, we just refused to\nturn quotas on it.  Sadly this check has been wrong and so there are now\nplenty installations where quota files don\u0027t have NOTAIL flag set and so now\nafter fixing the check, they suddently fail to turn quotas on.  Since it\u0027s\neasy to unpack the tail from kernel, do this from reiserfs_quota_on() which\nsolves the problem and is generally nicer to users anyway.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReported-by: \u003curhausen@urifabi.net\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "42a74f206b914db13ee1f5ae932dcd91a77c8579",
      "tree": "24e3dbe55edaacc750067ab9e01778255a6bff08",
      "parents": [
        "20ddee2c75339cc095f6191c3115f81da8955e96"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:46 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:24 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: elevate write count for ioctls()\n\nSome ioctl()s can cause writes to the filesystem.  Take these, and make them\nuse mnt_want/drop_write() instead.\n\n[AV: updated]\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e47776a0a41a14a5634633c96e590827f552c4b5",
      "tree": "44d5168b83fb1d8d72668728c690116d34f6711f",
      "parents": [
        "28822f22e18fc3c422f64b5bf0bb1e6c306af634"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 14 16:58:56 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:38 2007 -0800"
      },
      "message": "Forbid user to change file flags on quota files\n\nForbid user from changing file flags on quota files.  User has no bussiness\nin playing with these flags when quota is on.  Furthermore there is a\nremote possibility of deadlock due to a lock inversion between quota file\u0027s\ni_mutex and transaction\u0027s start (i_mutex for quota file is locked only when\ntrasaction is started in quota operations) in ext3 and ext4.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: LIOU Payphone \u003clioupayphone@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba9d8cec6c7165e440f9b2413a0464cf3c12fb25",
      "tree": "7fc05b10cdd18da51fce987b3323754ecdc53973",
      "parents": [
        "797b4cffdf79b9ed66759b8d2d5252eba965fb18"
      ],
      "author": {
        "name": "Vladimir Saveliev",
        "email": "vs@namesys.com",
        "time": "Tue Oct 16 01:25:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "reiserfs: convert to new aops\n\nConvert reiserfs to new aops\n\nSigned-off-by: Vladimir Saveliev \u003cvs@namesys.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bd858ab1c451725c07a805dcb315215dc85b86e",
      "tree": "5d49c4300e350d64fd81eb3230b81f754117e0c1",
      "parents": [
        "49c13b51a15f1ba9f6d47e26e4a3886c4f3931e2"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Tue Jul 17 15:00:08 2007 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 12:00:03 2007 -0700"
      },
      "message": "Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check\n\nIntroduce is_owner_or_cap() macro in fs.h, and convert over relevant\nusers to it. This is done because we want to avoid bugs in the future\nwhere we check for only effective fsuid of the current task against a\nfile\u0027s owning uid, without simultaneously checking for CAP_FOWNER as\nwell, thus violating its semantics.\n[ XFS uses special macros and structures, and in general looked ...\nuntouchable, so we leave it alone -- but it has been looked over. ]\n\nThe (current-\u003efsuid !\u003d inode-\u003ei_uid) check in generic_permission() and\nexec_permission_lite() is left alone, because those operations are\ncovered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH. Similarly operations\nfalling under the purview of CAP_CHOWN and CAP_LEASE are also left alone.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fc5adbd1916793c19d25347f484806c124d9be7",
      "tree": "81be6f222656f43c970013acf805da8d74882ca6",
      "parents": [
        "a57c4d65f70cb43c8503bc213c8be638011c22e7"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:49 2006 -0800"
      },
      "message": "[PATCH] struct path: convert reiserfs\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52b499c438ff60991eb3855ca090782569b3e8cf",
      "tree": "ce6dde5d3488a0ba0497c4c49d99d3b94ce921c0",
      "parents": [
        "36695673b012096228ebdc1b39a6a5850daa474e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 29 19:06:18 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:52:28 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move the ReiserFS device ioctl compat stuff to the ReiserFS driver [try #6]\n\nMove the ReiserFS device ioctl compat stuff from fs/compat_ioctl.c to the\nReiserFS driver so that the ReiserFS header file doesn\u0027t need to be included.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "b5f3953c10b27fcd1c83e199e573b41d8327e22e",
      "tree": "a7d3cafe3dbdfcfaa09de415bc46d3829c634bdb",
      "parents": [
        "ebd15302dc0ba1b8761600c20854f5371e7bae1e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Sat Aug 05 12:15:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:49 2006 -0700"
      },
      "message": "[PATCH] fix reiserfs lock inversion of bkl vs inode semaphore\n\nThe correct lock ordering is inode lock -\u003e BKL\n\nSigned-off-by: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16f7e0fe2ecc30f30652e8185e1772cdebe39109",
      "tree": "e668703267c7b02f1af3cc1581bb4366a5370fdd",
      "parents": [
        "c59ede7b78db329949d9cdcd7064e22d357560ef"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (fs/)\n\nfs: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bd4c625c061c2a38568d0add3478f59172455159",
      "tree": "1c44a17c55bce2ee7ad5ea3d15a208ecc0955f74",
      "parents": [
        "7fa94c8868edfef8cb6a201fcc9a5078b7b961da"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 20:21:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 20:21:28 2005 -0700"
      },
      "message": "reiserfs: run scripts/Lindent on reiserfs code\n\nThis was a pure indentation change, using:\n\n\tscripts/Lindent fs/reiserfs/*.c include/linux/reiserfs_*.h\n\nto make reiserfs match the regular Linux indentation style.  As Jeff\nMahoney \u003cjeffm@suse.com\u003e writes:\n\n The ReiserFS code is a mix of a number of different coding styles, sometimes\n different even from line-to-line. Since the code has been relatively stable\n for quite some time and there are few outstanding patches to be applied, it\n is time to reformat the code to conform to the Linux style standard outlined\n in Documentation/CodingStyle.\n\n This patch contains the result of running scripts/Lindent against\n fs/reiserfs/*.c and include/linux/reiserfs_*.h. There are places where the\n code can be made to look better, but I\u0027d rather keep those patches separate\n so that there isn\u0027t a subtle by-hand hand accident in the middle of a huge\n patch. To be clear: This patch is reformatting *only*.\n\n A number of patches may follow that continue to make the code more consistent\n with the Linux coding style.\n\n Hans wasn\u0027t particularly enthusiastic about these patches, but said he\n wouldn\u0027t really oppose them either.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "869eb76e7b60ebd8f87a358b72e97fa0aef1d1f5",
      "tree": "6c78a8f32c1e18286f9815f3077e454cca766bc0",
      "parents": [
        "0b35ff23b2633eb996d666e5a49a5d49b8a6a2d3"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Jun 29 18:52:28 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Wed Jun 29 21:02:04 2005 -0700"
      },
      "message": "[PATCH] reiserfs: Check if attrs are enabled for attr ioctls\n\nReiserFS currently will allow the user to set/get attrs for files\nregardless if they are enabled.  The patch checks to see if they are\nenabled, and returns -NOTTY if they are not.\n\next[23] doesn\u0027t need this check because attrs are always enabled.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
