)]}'
{
  "log": [
    {
      "commit": "033369d1af1264abc23bea2e174aa47cdd212f6f",
      "tree": "b00e709d1e9270b1708488da7a596a8dff72541d",
      "parents": [
        "5c5fd81962271d4ee2984837fef4ec37e689aa41"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:08 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: get rid of resierfs_sync_super\n\nThis patch stops reiserfs using the VFS \u0027write_super()\u0027 method along with the\ns_dirt flag, because they are on their way out.\n\nThe whole \"superblock write-out\" VFS infrastructure is served by the\n\u0027sync_supers()\u0027 kernel thread, which wakes up every 5 (by default) seconds and\nwrites out all dirty superblock using the \u0027-\u003ewrite_super()\u0027 call-back.  But the\nproblem with this thread is that it wastes power by waking up the system every\n5 seconds, even if there are no diry superblocks, or there are no client\nfile-systems which would need this (e.g., btrfs does not use\n\u0027-\u003ewrite_super()\u0027). So we want to kill it completely and thus, we need to make\nfile-systems to stop using the \u0027-\u003ewrite_super()\u0027 VFS service, and then remove\nit together with the kernel thread.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5c5fd81962271d4ee2984837fef4ec37e689aa41",
      "tree": "bf426f26c8265c3572e37e3a0908624da0cf0a58",
      "parents": [
        "717f03c4d71677d2afb68d54628def3aae5d46ab"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:07 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: mark the superblock as dirty a bit later\n\nThe \u0027journal_mark_dirty()\u0027 function currently first marks the superblock as\ndirty by setting \u0027s_dirt\u0027 to 1, then does various sanity checks and returns,\nthen actuall does all the magic with the journal.\n\nThis is not an ideal order, though. It makes more sense to first do all the\nchecks, then do all the internal stuff, and at the end notify the VFS that the\nsuperblock is now dirty.\n\nThis patch moves the \u0027s_dirt \u003d 1\u0027 assignment from the very beginning of this\nfunction to the very end.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "25729b0e94c2103a8d726eda843136a3775366cf",
      "tree": "b5858042ffb91144103a38b6be197cd54afa4d67",
      "parents": [
        "efaa33eb1309d65528d5a54d87d69bdcbdae8c10"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:05 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: clean-up function return type\n\nTurn \u0027reiserfs_flush_old_commits()\u0027 into a void function because the callers\ndo not cares about what it returns anyway.\n\nWe are going to remove the \u0027sb-\u003es_dirt\u0027 field completely and this patch is a\nsmall step towards this direction.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "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": "37c69b98d0dca54d9eb72226bbf2e211aaaf126e",
      "tree": "249277ba7072933b760164bfac713140c0438745",
      "parents": [
        "f32485be8397ad811312bc055d2e2a5906bc7576"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 10 15:11:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:53 2012 -0800"
      },
      "message": "reiserfs: don\u0027t lock journal_init()\n\njournal_init() doesn\u0027t need the lock since no operation on the filesystem\nis involved there.  journal_read() and get_list_bitmap() have yet to be\nreviewed carefully though before removing the lock there.  Just keep the\nit around these two calls for safety.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b18c1c6e0c90cbcd38ba879bd63a44c94e4f7301",
      "tree": "125638b5d0654dab6063a8171d9be821b03688d2",
      "parents": [
        "e74a8f2edb92cb690b467cea0ab652c509e9f624"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Tue Jan 10 15:11:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:53 2012 -0800"
      },
      "message": "reiserfs: delete comments referring to the BKL\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "558feb0818374d657fbc1ea03776ee20f204b3a6",
      "tree": "9c063b50ef953405850422ca740dda3093ef6387",
      "parents": [
        "1ac4594d88f63ba1557cc1a30ec1f915ca55b7cb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat May 28 10:36:33 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 13:56:28 2011 +0200"
      },
      "message": "fs: Convert vmalloc/memset to vzalloc\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4aede84b33d6beb401136a3deca0651ae07c5e99",
      "tree": "831266dbb15227584da5011ae4bb1e5038a69677",
      "parents": [
        "a07405b7802691d29ab3b23bdc76ee6d006aad0b"
      ],
      "author": {
        "name": "Justin TerAvest",
        "email": "teravest@google.com",
        "time": "Tue Jul 12 08:31:45 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 12 08:35:10 2011 +0200"
      },
      "message": "fixlet: Remove fs_excl from struct task.\n\nfs_excl is a poor man\u0027s priority inheritance for filesystems to hint to\nthe block layer that an operation is important. It was never clearly\nspecified, not widely adopted, and will not prevent starvation in many\ncases (like across cgroups).\n\nfs_excl was introduced with the time sliced CFQ IO scheduler, to\nindicate when a process held FS exclusive resources and thus needed\na boost.\n\nIt doesn\u0027t cover all file systems, and it was never fully complete.\nLets kill it.\n\nSigned-off-by: Justin TerAvest \u003cteravest@google.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\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": "28aadf51693f56c41326ebbc795318a49011b12d",
      "tree": "18fe5ba43f28495407d6a46d61203efb99b978f9",
      "parents": [
        "316873c958eee302952edcadb8dc72d6d3d19d3c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "message": "reiserfs: make commit_wq use the default concurrency level\n\nThe maximum number of concurrent work items queued on commit_wq is\nbound by the number of active journals.  Convert to alloc_workqueue()\nand use the default concurrency level so that they can be processed in\nparallel.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: reiserfs-devel@vger.kernel.org\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4d77629953eabd3c14f6fa5746f6b28babfc55f",
      "tree": "38cce0d4764ecb34a9f7f49332959780e28bb786",
      "parents": [
        "75f1dc0d076d1c1168f2115f1941ea627d38bd5a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "message": "block: clean up blkdev_get() wrappers and their users\n\nAfter recent blkdev_get() modifications, open_by_devnum() and\nopen_bdev_exclusive() are simple wrappers around blkdev_get().\nReplace them with blkdev_get_by_dev() and blkdev_get_by_path().\n\nblkdev_get_by_dev() is identical to open_by_devnum().\nblkdev_get_by_path() is slightly different in that it doesn\u0027t\nautomatically add %FMODE_EXCL to @mode.\n\nAll users are converted.  Most conversions are mechanical and don\u0027t\nintroduce any behavior difference.  There are several exceptions.\n\n* btrfs now sets FMODE_EXCL in btrfs_device-\u003emode, so there\u0027s no\n  reason to OR it explicitly on blkdev_put().\n\n* gfs2, nilfs2 and the generic mount_bdev() now set FMODE_EXCL in\n  sb-\u003es_mode.\n\n* With the above changes, sb-\u003es_mode now always should contain\n  FMODE_EXCL.  WARN_ON_ONCE() added to kill_block_super() to detect\n  errors.\n\nThe new blkdev_get_*() functions are with proper docbook comments.\nWhile at it, add function description to blkdev_get() too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Joern Engel \u003cjoern@lazybastard.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: xfs-masters@oss.sgi.com\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e525fd89d380c4a94c0d63913a1dd1a593ed25e7",
      "tree": "d226ef40d3f99e42fcf272ad432585cbd641ebec",
      "parents": [
        "e09b457bdb7e8d23fc54dcef0930ac697d8de895"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: make blkdev_get/put() handle exclusive access\n\nOver time, block layer has accumulated a set of APIs dealing with bdev\nopen, close, claim and release.\n\n* blkdev_get/put() are the primary open and close functions.\n\n* bd_claim/release() deal with exclusive open.\n\n* open/close_bdev_exclusive() are combination of open and claim and\n  the other way around, respectively.\n\n* bd_link/unlink_disk_holder() to create and remove holder/slave\n  symlinks.\n\n* open_by_devnum() wraps bdget() + blkdev_get().\n\nThe interface is a bit confusing and the decoupling of open and claim\nmakes it impossible to properly guarantee exclusive access as\nin-kernel open + claim sequence can disturb the existing exclusive\nopen even before the block layer knows the current open if for another\nexclusive access.  Reorganize the interface such that,\n\n* blkdev_get() is extended to include exclusive access management.\n  @holder argument is added and, if is @FMODE_EXCL specified, it will\n  gain exclusive access atomically w.r.t. other exclusive accesses.\n\n* blkdev_put() is similarly extended.  It now takes @mode argument and\n  if @FMODE_EXCL is set, it releases an exclusive access.  Also, when\n  the last exclusive claim is released, the holder/slave symlinks are\n  removed automatically.\n\n* bd_claim/release() and close_bdev_exclusive() are no longer\n  necessary and either made static or removed.\n\n* bd_link_disk_holder() remains the same but bd_unlink_disk_holder()\n  is no longer necessary and removed.\n\n* open_bdev_exclusive() becomes a simple wrapper around lookup_bdev()\n  and blkdev_get().  It also has an unexpected extra bdev_read_only()\n  test which probably should be moved into blkdev_get().\n\n* open_by_devnum() is modified to take @holder argument and pass it to\n  blkdev_get().\n\nMost of bdev open/close operations are unified into blkdev_get/put()\nand most exclusive accesses are tested atomically at the open time (as\nit should).  This cleans up code and removes some, both valid and\ninvalid, but unnecessary all the same, corner cases.\n\nopen_bdev_exclusive() and open_by_devnum() can use further cleanup -\nrename to blkdev_get_by_path() and blkdev_get_by_devt() and drop\nspecial features.  Well, let\u0027s leave them for another day.\n\nMost conversions are straight-forward.  drbd conversion is a bit more\ninvolved as there was some reordering, but the logic should stay the\nsame.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: dm-devel@redhat.com\nCc: drbd-dev@lists.linbit.com\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7cd33ad23ec41d685902159be8b2c6552fab8bd0",
      "tree": "c22c6f5601b7fbcf7cc28813f087189e955cd2ef",
      "parents": [
        "f1e4d518c3beddf67f7722f3548eda0ec7006204"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 18 05:29:14 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:39 2010 +0200"
      },
      "message": "reiserfs: replace barriers with explicit flush / FUA usage\n\nSwitch to the WRITE_FLUSH_FUA flag for log writes and remove the EOPNOTSUPP\ndetection for barriers.  Note that reiserfs had a fairly different code\npath for barriers before as it wa the only filesystem actually making use\nof them.  The new code always uses the old non-barrier codepath and just\nsets the WRITE_FLUSH_FUA explicitly for the journal commits.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9cb569d601e0b93e01c20a22872270ec663b75f6",
      "tree": "80b2568fae48018806e82f8884062dae8a5494ae",
      "parents": [
        "87e99511ea54510ffb60b98001d108794d5037f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:06:24 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:01 2010 -0400"
      },
      "message": "remove SWRITE* I/O types\n\nThese flags aren\u0027t real I/O types, but tell ll_rw_block to always\nlock the buffer instead of giving up on a failed trylock.\n\nInstead add a new write_dirty_buffer helper that implements this semantic\nand use it from the existing SWRITE* callers.  Note that the ll_rw_block\ncode had a bug where it didn\u0027t promote WRITE_SYNC_PLUG properly, which\nthis patch fixes.\n\nIn the ufs code clean up the helper that used to call ll_rw_block\nto mirror sync_dirty_buffer, which is the function it implements for\ncompound buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b3397ad544172fb34ddcff5b04704b6c80838289",
      "tree": "8214d82e32f433be9229aec88206b37c991ef420",
      "parents": [
        "628a464e5bffd0e9aedaee2a85296be17aa19d90"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Aug 10 18:02:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:12 2010 -0700"
      },
      "message": "reiserfs: remove unused local `wait\u0027\n\nSigned-off-by: Changli Gao \u003cxiaosuo@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": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "3f8b5ee33293d43ca360771b535dfae8c57259dc",
      "tree": "f533b80b6ad553882e81799b17e0cf94e41bf70e",
      "parents": [
        "6cb4aff0a77cc0e6bae9475d62205319e3ebbf3f"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Tue Mar 23 13:35:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:21 2010 -0700"
      },
      "message": "reiserfs: properly honor read-only devices\n\nThe reiserfs journal behaves inconsistently when determining whether to\nallow a mount of a read-only device.\n\nThis is due to the use of the continue_replay variable to short circuit\nthe journal scanning.  If it\u0027s set, it\u0027s assumed that there are\ntransactions to replay, but there may not be.  If it\u0027s unset, it\u0027s assumed\nthat there aren\u0027t any, and that may not be the case either.\n\nI\u0027ve observed two failure cases:\n1) Where a clean file system on a read-only device refuses to mount\n2) Where a clean file system on a read-only device passes the\n   optimization and then tries writing the journal header to update\n   the latest mount id.\n\nThe former is easily observable by using a freshly created file system on\na read-only loopback device.\n\nThis patch moves the check into journal_read_transaction, where it can\nbail out before it\u0027s about to replay a transaction.  That way it can go\nthrough and skip transactions where appropriate, yet still refuse to mount\na file system with outstanding transactions.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbec919150037b8a2e58e32d3ba642ba3b6582a5",
      "tree": "52536f66f9cab019f2af86151bcbe863fd5d5691",
      "parents": [
        "92dcffb916d309aa01778bf8963a6932e4014d07"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 28 13:43:50 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 28 13:43:50 2010 +0100"
      },
      "message": "reiserfs: Fix vmalloc call under reiserfs lock\n\nVmalloc is called to allocate journal-\u003ej_cnode_free_list but\nwe hold the reiserfs lock at this time, which raises a\n{RECLAIM_FS-ON-W} -\u003e {IN-RECLAIM_FS-W} lock inversion.\n\nJust drop the reiserfs lock at this time, as it\u0027s not even\nneeded but kept for paranoid reasons.\n\nThis fixes:\n\n[ INFO: inconsistent lock state ]\n2.6.33-rc5 #1\n---------------------------------\ninconsistent {RECLAIM_FS-ON-W} -\u003e {IN-RECLAIM_FS-W} usage.\nkswapd0/313 [HC0[0]:SC0[0]:HE1:SE1] takes:\n (\u0026REISERFS_SB(s)-\u003elock){+.+.?.}, at: [\u003cc11118c8\u003e]\nreiserfs_write_lock_once+0x28/0x50\n{RECLAIM_FS-ON-W} state was registered at:\n  [\u003cc104ee32\u003e] mark_held_locks+0x62/0x90\n  [\u003cc104eefa\u003e] lockdep_trace_alloc+0x9a/0xc0\n  [\u003cc108f7b6\u003e] kmem_cache_alloc+0x26/0xf0\n  [\u003cc108621c\u003e] __get_vm_area_node+0x6c/0xf0\n  [\u003cc108690e\u003e] __vmalloc_node+0x7e/0xa0\n  [\u003cc1086aab\u003e] vmalloc+0x2b/0x30\n  [\u003cc110e1fb\u003e] journal_init+0x6cb/0xa10\n  [\u003cc10f90a2\u003e] reiserfs_fill_super+0x342/0xb80\n  [\u003cc1095665\u003e] get_sb_bdev+0x145/0x180\n  [\u003cc10f68e1\u003e] get_super_block+0x21/0x30\n  [\u003cc1094520\u003e] vfs_kern_mount+0x40/0xd0\n  [\u003cc1094609\u003e] do_kern_mount+0x39/0xd0\n  [\u003cc10aaa97\u003e] do_mount+0x2c7/0x6d0\n  [\u003cc10aaf06\u003e] sys_mount+0x66/0xa0\n  [\u003cc16198a7\u003e] mount_block_root+0xc4/0x245\n  [\u003cc1619a81\u003e] mount_root+0x59/0x5f\n  [\u003cc1619b98\u003e] prepare_namespace+0x111/0x14b\n  [\u003cc1619269\u003e] kernel_init+0xcf/0xdb\n  [\u003cc100303a\u003e] kernel_thread_helper+0x6/0x1c\nirq event stamp: 63236801\nhardirqs last  enabled at (63236801): [\u003cc134e7fa\u003e]\n__mutex_unlock_slowpath+0x9a/0x120\nhardirqs last disabled at (63236800): [\u003cc134e799\u003e]\n__mutex_unlock_slowpath+0x39/0x120\nsoftirqs last  enabled at (63218800): [\u003cc102f451\u003e] __do_softirq+0xc1/0x110\nsoftirqs last disabled at (63218789): [\u003cc102f4ed\u003e] do_softirq+0x4d/0x60\n\nother info that might help us debug this:\n2 locks held by kswapd0/313:\n #0:  (shrinker_rwsem){++++..}, at: [\u003cc1074bb4\u003e] shrink_slab+0x24/0x170\n #1:  (\u0026type-\u003es_umount_key#19){++++..}, at: [\u003cc10a2edd\u003e]\nshrink_dcache_memory+0xfd/0x1a0\n\nstack backtrace:\nPid: 313, comm: kswapd0 Not tainted 2.6.33-rc5 #1\nCall Trace:\n [\u003cc134db2c\u003e] ? printk+0x18/0x1c\n [\u003cc104e7ef\u003e] print_usage_bug+0x15f/0x1a0\n [\u003cc104ebcf\u003e] mark_lock+0x39f/0x5a0\n [\u003cc104d66b\u003e] ? trace_hardirqs_off+0xb/0x10\n [\u003cc1052c50\u003e] ? check_usage_forwards+0x0/0xf0\n [\u003cc1050c24\u003e] __lock_acquire+0x214/0xa70\n [\u003cc10438c5\u003e] ? sched_clock_cpu+0x95/0x110\n [\u003cc10514fa\u003e] lock_acquire+0x7a/0xa0\n [\u003cc11118c8\u003e] ? reiserfs_write_lock_once+0x28/0x50\n [\u003cc134f03f\u003e] mutex_lock_nested+0x5f/0x2b0\n [\u003cc11118c8\u003e] ? reiserfs_write_lock_once+0x28/0x50\n [\u003cc11118c8\u003e] ? reiserfs_write_lock_once+0x28/0x50\n [\u003cc11118c8\u003e] reiserfs_write_lock_once+0x28/0x50\n [\u003cc10f05b0\u003e] reiserfs_delete_inode+0x50/0x140\n [\u003cc10a653f\u003e] ? generic_delete_inode+0x5f/0x150\n [\u003cc10f0560\u003e] ? reiserfs_delete_inode+0x0/0x140\n [\u003cc10a657c\u003e] generic_delete_inode+0x9c/0x150\n [\u003cc10a666d\u003e] generic_drop_inode+0x3d/0x60\n [\u003cc10a5597\u003e] iput+0x47/0x50\n [\u003cc10a2a4f\u003e] dentry_iput+0x6f/0xf0\n [\u003cc10a2af4\u003e] d_kill+0x24/0x50\n [\u003cc10a2d3d\u003e] __shrink_dcache_sb+0x21d/0x2b0\n [\u003cc10a2f0f\u003e] shrink_dcache_memory+0x12f/0x1a0\n [\u003cc1074c9e\u003e] shrink_slab+0x10e/0x170\n [\u003cc1075177\u003e] kswapd+0x477/0x6a0\n [\u003cc1072d10\u003e] ? isolate_pages_global+0x0/0x1b0\n [\u003cc103e160\u003e] ? autoremove_wake_function+0x0/0x40\n [\u003cc1074d00\u003e] ? kswapd+0x0/0x6a0\n [\u003cc103de6c\u003e] kthread+0x6c/0x80\n [\u003cc103de00\u003e] ? kthread+0x0/0x80\n [\u003cc100303a\u003e] kernel_thread_helper+0x6/0x1c\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0523676d3f3aa7edeea63cc3a1bc4dc612380a26",
      "tree": "daf7226836c93f57e4a6eaccdfa6617dcae83df0",
      "parents": [
        "27026a05bb805866a3b9068dda8153b72cb942f4"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 30 05:56:08 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jan 02 01:56:54 2010 +0100"
      },
      "message": "reiserfs: Relax reiserfs lock while freeing the journal\n\nKeeping the reiserfs lock while freeing the journal on\numount path triggers a lock inversion between bdev-\u003ebd_mutex\nand the reiserfs lock.\n\nWe don\u0027t need the reiserfs lock at this stage. The filesystem\nis not usable anymore, and there are no more pending commits,\neverything got flushed (even this operation was done in parallel\nand didn\u0027t required the reiserfs lock from the current process).\n\nThis fixes the following lockdep report:\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 ]\n2.6.32-atom #172\n-------------------------------------------------------\numount/3904 is trying to acquire lock:\n (\u0026bdev-\u003ebd_mutex){+.+.+.}, at: [\u003cc10de2c2\u003e] __blkdev_put+0x22/0x160\n\nbut task is already holding lock:\n (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1143279\u003e] reiserfs_write_lock+0x29/0x40\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #3 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n       [\u003cc105ea7f\u003e] __lock_acquire+0x11ff/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc140199b\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc1143229\u003e] reiserfs_write_lock_once+0x29/0x50\n       [\u003cc111c485\u003e] reiserfs_get_block+0x85/0x1620\n       [\u003cc10e1040\u003e] do_mpage_readpage+0x1f0/0x6d0\n       [\u003cc10e1640\u003e] mpage_readpages+0xc0/0x100\n       [\u003cc1119b89\u003e] reiserfs_readpages+0x19/0x20\n       [\u003cc108f1ec\u003e] __do_page_cache_readahead+0x1bc/0x260\n       [\u003cc108f2b8\u003e] ra_submit+0x28/0x40\n       [\u003cc1087e3e\u003e] filemap_fault+0x40e/0x420\n       [\u003cc109b5fd\u003e] __do_fault+0x3d/0x430\n       [\u003cc109d47e\u003e] handle_mm_fault+0x12e/0x790\n       [\u003cc1022a65\u003e] do_page_fault+0x135/0x330\n       [\u003cc1403663\u003e] error_code+0x6b/0x70\n       [\u003cc10ef9ca\u003e] load_elf_binary+0x82a/0x1a10\n       [\u003cc10ba130\u003e] search_binary_handler+0x90/0x1d0\n       [\u003cc10bb70f\u003e] do_execve+0x1df/0x250\n       [\u003cc1001746\u003e] sys_execve+0x46/0x70\n       [\u003cc1002fa5\u003e] syscall_call+0x7/0xb\n\n-\u003e #2 (\u0026mm-\u003emmap_sem){++++++}:\n       [\u003cc105ea7f\u003e] __lock_acquire+0x11ff/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc109b1ab\u003e] might_fault+0x8b/0xb0\n       [\u003cc11b8f52\u003e] copy_to_user+0x32/0x70\n       [\u003cc10c3b94\u003e] filldir64+0xa4/0xf0\n       [\u003cc1109116\u003e] sysfs_readdir+0x116/0x210\n       [\u003cc10c3e1d\u003e] vfs_readdir+0x8d/0xb0\n       [\u003cc10c3ea9\u003e] sys_getdents64+0x69/0xb0\n       [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #1 (sysfs_mutex){+.+.+.}:\n       [\u003cc105ea7f\u003e] __lock_acquire+0x11ff/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc140199b\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc110951c\u003e] sysfs_addrm_start+0x2c/0xb0\n       [\u003cc1109aa0\u003e] create_dir+0x40/0x90\n       [\u003cc1109b1b\u003e] sysfs_create_dir+0x2b/0x50\n       [\u003cc11b2352\u003e] kobject_add_internal+0xc2/0x1b0\n       [\u003cc11b2531\u003e] kobject_add_varg+0x31/0x50\n       [\u003cc11b25ac\u003e] kobject_add+0x2c/0x60\n       [\u003cc1258294\u003e] device_add+0x94/0x560\n       [\u003cc11036ea\u003e] add_partition+0x18a/0x2a0\n       [\u003cc110418a\u003e] rescan_partitions+0x33a/0x450\n       [\u003cc10de5bf\u003e] __blkdev_get+0x12f/0x2d0\n       [\u003cc10de76a\u003e] blkdev_get+0xa/0x10\n       [\u003cc11034b8\u003e] register_disk+0x108/0x130\n       [\u003cc11a87a9\u003e] add_disk+0xd9/0x130\n       [\u003cc12998e5\u003e] sd_probe_async+0x105/0x1d0\n       [\u003cc10528af\u003e] async_thread+0xcf/0x230\n       [\u003cc104bfd4\u003e] kthread+0x74/0x80\n       [\u003cc1003aab\u003e] kernel_thread_helper+0x7/0x3c\n\n-\u003e #0 (\u0026bdev-\u003ebd_mutex){+.+.+.}:\n       [\u003cc105f176\u003e] __lock_acquire+0x18f6/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc140199b\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc10de2c2\u003e] __blkdev_put+0x22/0x160\n       [\u003cc10de40a\u003e] blkdev_put+0xa/0x10\n       [\u003cc113ce22\u003e] free_journal_ram+0xd2/0x130\n       [\u003cc113ea18\u003e] do_journal_release+0x98/0x190\n       [\u003cc113eb2a\u003e] journal_release+0xa/0x10\n       [\u003cc1128eb6\u003e] reiserfs_put_super+0x36/0x130\n       [\u003cc10b776f\u003e] generic_shutdown_super+0x4f/0xe0\n       [\u003cc10b7825\u003e] kill_block_super+0x25/0x40\n       [\u003cc11255df\u003e] reiserfs_kill_sb+0x7f/0x90\n       [\u003cc10b7f4a\u003e] deactivate_super+0x7a/0x90\n       [\u003cc10cccd8\u003e] mntput_no_expire+0x98/0xd0\n       [\u003cc10ccfcc\u003e] sys_umount+0x4c/0x310\n       [\u003cc10cd2a9\u003e] sys_oldumount+0x19/0x20\n       [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\nother info that might help us debug this:\n\n2 locks held by umount/3904:\n #0:  (\u0026type-\u003es_umount_key#30){+++++.}, at: [\u003cc10b7f45\u003e] deactivate_super+0x75/0x90\n #1:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1143279\u003e] reiserfs_write_lock+0x29/0x40\n\nstack backtrace:\nPid: 3904, comm: umount Not tainted 2.6.32-atom #172\nCall Trace:\n [\u003cc13ff903\u003e] ? printk+0x18/0x1a\n [\u003cc105d33a\u003e] print_circular_bug+0xca/0xd0\n [\u003cc105f176\u003e] __lock_acquire+0x18f6/0x19e0\n [\u003cc108b66f\u003e] ? free_pcppages_bulk+0x1f/0x250\n [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n [\u003cc10de2c2\u003e] ? __blkdev_put+0x22/0x160\n [\u003cc10de2c2\u003e] ? __blkdev_put+0x22/0x160\n [\u003cc140199b\u003e] mutex_lock_nested+0x5b/0x340\n [\u003cc10de2c2\u003e] ? __blkdev_put+0x22/0x160\n [\u003cc105c932\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc10afe12\u003e] ? kfree+0x92/0xd0\n [\u003cc10de2c2\u003e] __blkdev_put+0x22/0x160\n [\u003cc105cc3b\u003e] ? trace_hardirqs_on+0xb/0x10\n [\u003cc10de40a\u003e] blkdev_put+0xa/0x10\n [\u003cc113ce22\u003e] free_journal_ram+0xd2/0x130\n [\u003cc113ea18\u003e] do_journal_release+0x98/0x190\n [\u003cc113eb2a\u003e] journal_release+0xa/0x10\n [\u003cc1128eb6\u003e] reiserfs_put_super+0x36/0x130\n [\u003cc1050596\u003e] ? up_write+0x16/0x30\n [\u003cc10b776f\u003e] generic_shutdown_super+0x4f/0xe0\n [\u003cc10b7825\u003e] kill_block_super+0x25/0x40\n [\u003cc10f41e0\u003e] ? vfs_quota_off+0x0/0x20\n [\u003cc11255df\u003e] reiserfs_kill_sb+0x7f/0x90\n [\u003cc10b7f4a\u003e] deactivate_super+0x7a/0x90\n [\u003cc10cccd8\u003e] mntput_no_expire+0x98/0xd0\n [\u003cc10ccfcc\u003e] sys_umount+0x4c/0x310\n [\u003cc10cd2a9\u003e] sys_oldumount+0x19/0x20\n [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\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": "98ea3f50bcc97689cc0e1fa3b6733f03aeb8fef4",
      "tree": "d909a47008ed466e5119f21f366934be5a6276b8",
      "parents": [
        "47376ceba54600cec4dd9e7c4fe8b98e4269633a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 29 21:51:15 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 29 22:34:59 2009 +0100"
      },
      "message": "reiserfs: Fix remaining in-reclaim-fs \u003c-\u003e reclaim-fs-on locking inversion\n\nCommit 500f5a0bf5f0624dae34307010e240ec090e4cde\n(reiserfs: Fix possible recursive lock) fixed a vmalloc under reiserfs\nlock that triggered a lockdep warning because of a\nIN-FS-RECLAIM \u003c-\u003e RECLAIM-FS-ON locking dependency inversion.\n\nBut this patch has ommitted another vmalloc call in the same path\nthat allocates the journal. Relax the lock for this one too.\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48f6ba5e691948caba2e7bc362153fb28e4f1e09",
      "tree": "318e755ec8c3664b1276a5a87f455b8dc37c3862",
      "parents": [
        "193be0ee17dd7ea309ddab1093da17e5924d7f36"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Oct 05 16:31:37 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Oct 05 16:31:37 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: fix reiserfs lock to cpu_add_remove_lock dependency\n\nWhile creating the reiserfs workqueue during the journal\ninitialization, we are holding the reiserfs lock, but\ncreate_workqueue() also holds the cpu_add_remove_lock, creating\nthen the following dependency:\n\n- reiserfs lock -\u003e cpu_add_remove_lock\n\nBut we also have the following existing dependencies:\n\n- mm-\u003emmap_sem -\u003e reiserfs lock\n- cpu_add_remove_lock -\u003e cpu_hotplug.lock -\u003e slub_lock -\u003e sysfs_mutex\n\nThe merged dependency chain then becomes:\n\n- mm-\u003emmap_sem -\u003e reiserfs lock -\u003e cpu_add_remove_lock -\u003e\n\tcpu_hotplug.lock -\u003e slub_lock -\u003e sysfs_mutex\n\nBut when we fill a dir entry in sysfs_readir(), we are holding the\nsysfs_mutex and we also might fault while copying the directory entry\nto the user, leading to the following dependency:\n\n- sysfs_mutex -\u003e mm-\u003emmap_sem\n\nThe end result is then a lock inversion between sysfs_mutex and\nmm-\u003emmap_sem, as reported in the following lockdep warning:\n\n[ INFO: possible circular locking dependency detected ]\n2.6.31-07095-g25a3912 #4\n-------------------------------------------------------\nudevadm/790 is trying to acquire lock:\n (\u0026mm-\u003emmap_sem){++++++}, at: [\u003cc1098942\u003e] might_fault+0x72/0xc0\n\nbut task is already holding lock:\n (sysfs_mutex){+.+.+.}, at: [\u003cc110813c\u003e] sysfs_readdir+0x7c/0x260\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #5 (sysfs_mutex){+.+.+.}:\n      [...]\n\n-\u003e #4 (slub_lock){+++++.}:\n      [...]\n\n-\u003e #3 (cpu_hotplug.lock){+.+.+.}:\n      [...]\n\n-\u003e #2 (cpu_add_remove_lock){+.+.+.}:\n      [...]\n\n-\u003e #1 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n      [...]\n\n-\u003e #0 (\u0026mm-\u003emmap_sem){++++++}:\n      [...]\n\nThis can be fixed by relaxing the reiserfs lock while creating the\nworkqueue.\nThis is fine to relax the lock here, we just keep it around to pass\nthrough reiserfs lock checks and for paranoid reasons.\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nTested-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\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": "193be0ee17dd7ea309ddab1093da17e5924d7f36",
      "tree": "d57d6a5162311b9f4513f485aca89fe5b992e31a",
      "parents": [
        "80503185989b2dd84170bb842e23d3fd45ebdf40"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 17 05:31:37 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 17 05:31:37 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: Fix induced mm-\u003emmap_sem to sysfs_mutex dependency\n\nAlexander Beregalov reported the following warning:\n\n\t\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\t[ INFO: possible circular locking dependency detected ]\n\t2.6.31-03149-gdcc030a #1\n\t-------------------------------------------------------\n\tudevadm/716 is trying to acquire lock:\n\t (\u0026mm-\u003emmap_sem){++++++}, at: [\u003cc107249a\u003e] might_fault+0x4a/0xa0\n\n\tbut task is already holding lock:\n\t (sysfs_mutex){+.+.+.}, at: [\u003cc10cb9aa\u003e] sysfs_readdir+0x5a/0x200\n\n\twhich lock already depends on the new lock.\n\n\tthe existing dependency chain (in reverse order) is:\n\n\t-\u003e #3 (sysfs_mutex){+.+.+.}:\n\t       [...]\n\n\t-\u003e #2 (\u0026bdev-\u003ebd_mutex){+.+.+.}:\n\t       [...]\n\n\t-\u003e #1 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n\t       [...]\n\n\t-\u003e #0 (\u0026mm-\u003emmap_sem){++++++}:\n\t       [...]\n\nOn reiserfs mount path, we take the reiserfs lock and while\ninitializing the journal, we open the device, taking the\nbdev-\u003ebd_mutex. Then rescan_partition() may signal the change\nto sysfs.\n\nWe have then the following dependency:\n\n\treiserfs_lock -\u003e bd_mutex -\u003e sysfs_mutex\n\nLater, while entering reiserfs_readpage() after a pagefault in an\nmmaped reiserfs file, we are holding the mm-\u003emmap_sem, and we are going\nto take the reiserfs lock too.\nWe have then the following dependency:\n\n\tmm-\u003emmap_sem -\u003e reiserfs_lock\n\nwhich, expanded with the previous dependency gives us:\n\n\tmm-\u003emmap_sem -\u003e reiserfs_lock -\u003e bd_mutex -\u003e sysfs_mutex\n\nNow while entering the sysfs readdir path, we are holding the\nsysfs_mutex. And when we copy a directory entry to the user buffer, we\nmight fault and then take the mm-\u003emmap_sem lock. Which leads to the\ncircular locking dependency reported.\n\nWe can fix that by relaxing the reiserfs lock during the call to\njournal_init_dev(), which is the place where we open the mounted\ndevice.\n\nThis is fine to relax the lock here because we are in the begining of\nthe reiserfs mount path and there is nothing to protect at this time,\nthe journal is not intialized.\nWe just keep this lock around for paranoid reasons.\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nTested-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\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": "c72e05756b900b3be24cd73a16de52bab80984c0",
      "tree": "4fc35ad9efc1a6a9ca14baa3612e551fb4da793e",
      "parents": [
        "2ac626955ed62ee8596f00581f959cc86e6198d1"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 16 18:12:08 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:24 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: acquire the inode mutex safely\n\nWhile searching a pathname, an inode mutex can be acquired\nin do_lookup() which calls reiserfs_lookup() which in turn\nacquires the write lock.\n\nOn the other side reiserfs_fill_super() can acquire the write_lock\nand then call reiserfs_lookup_privroot() which can acquire an\ninode mutex (the root of the mount point).\n\nSo we theoretically risk an AB - BA lock inversion that could lead\nto a deadlock.\n\nAs for other lock dependencies found since the bkl to mutex\nconversion, the fix is to use reiserfs_mutex_lock_safe() which\ndrops the lock dependency to the write lock.\n\n[ Impact: fix a possible deadlock with reiserfs ]\n\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\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "c63e3c0b2498adec921b06c670d12c8c74b85538",
      "tree": "27ca06415b5fdd51e369361ea8aa8f8e8e1ac741",
      "parents": [
        "d6f5b0aa08078c3dabe377d5b1a6077e9c9352d3"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri May 08 20:01:09 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:21 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: use mutex_lock in reiserfs_mutex_lock_safe\n\nreiserfs_mutex_lock_safe() is a hack to avoid any dependency between\nan internal reiserfs mutex and the write lock, it has been proposed\nto follow the old bkl logic.\n\nThe code does the following:\n\nwhile (!mutex_trylock(m)) {\n\treiserfs_write_unlock(s);\n\tschedule();\n\treiserfs_write_lock(s);\n}\n\nIt then imitate the implicit behaviour of the lock when it was\na Bkl and hadn\u0027t such dependency:\n\nmutex_lock(m) {\n\tif (fastpath)\n\t\tlet\u0027s go\n\telse {\n\t\twait_for_mutex() {\n\t\t\tschedule() {\n\t\t\t\tunlock_kernel()\n\t\t\t\treacquire_lock_kernel()\n\t\t\t}\n\t\t}\n\t}\n}\n\nThe problem is that by using such explicit schedule(), we don\u0027t\nbenefit of the adaptive mutex spinning on owner.\n\nThe logic in use now is:\n\nreiserfs_write_unlock(s);\nmutex_lock(m); // -\u003e possible adaptive spinning\nreiserfs_write_lock(s);\n\n[ Impact: restore the use of adaptive spinning mutexes in reiserfs ]\n\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\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6e3647acb4f200add1d8e0203514f7ac925ae463",
      "tree": "95a779d1f59c04ca58956a49340b88497b476f13",
      "parents": [
        "4c5eface5d0e4eb7f77be346193c2850e7e3b983"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri May 01 02:27:39 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:13 2009 +0200"
      },
      "message": "kill-the-BKL/reiserfs: release the write lock on flush_commit_list()\n\nflush_commit_list() uses ll_rw_block() to commit the pending log blocks.\nll_rw_block() might sleep, and the bkl was released at this point. Then\nwe can also relax the write lock at this point.\n\n[ Impact: release the reiserfs write lock when it is not needed ]\n\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "e6950a4da33fa84ef4402d29e2331cd5e5df9cb8",
      "tree": "05650bb6b4fc7c148253dd3c7c4222c2783f84d3",
      "parents": [
        "f32049dc244f4d394c8faa161b4f13cb8c4f5c8c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Apr 30 23:04:32 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:08 2009 +0200"
      },
      "message": "kill-the-BKL/reiserfs: release the write lock before rescheduling on do_journal_end()\n\nWhen do_journal_end() copies data to the journal blocks buffers in memory,\nit reschedules if needed between each block copied and dirtyfied.\n\nWe can also release the write lock at this rescheduling stage,\nlike did the bkl implicitly.\n\n[ Impact: release the reiserfs write lock when it is not needed ]\n\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "a412f9efdd6424bf4bf28c8e8c92060b5e975482",
      "tree": "b290d38a85c4b675af426dbd8593768bc5339fa1",
      "parents": [
        "8ebc423238341b52912c7295b045a32477b33f09"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Apr 14 00:10:35 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:01 2009 +0200"
      },
      "message": "reiserfs, kill-the-BKL: fix unsafe j_flush_mutex lock\n\nImpact: fix a deadlock\n\nThe j_flush_mutex is acquired safely in journal.c:\nif we can\u0027t take it, we free the reiserfs per superblock lock\nand wait a bit.\n\nBut we have a remaining place in kupdate_transactions() where\nj_flush_mutex is still acquired traditionnaly. Thus the following\nscenario (warned by lockdep) can happen:\n\nA\t\t\t\t\t\tB\n\nmutex_lock(\u0026write_lock)\t\t\tmutex_lock(\u0026write_lock)\n\tmutex_lock(\u0026j_flush_mutex)\tmutex_lock(\u0026j_flush_mutex) //block\n\tmutex_unlock(\u0026write_lock)\n\tsleep...\n\tmutex_lock(\u0026write_lock) //deadlock\n\nFix this by using reiserfs_mutex_lock_safe() in kupdate_transactions().\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\nLKML-Reference: \u003c1239660635-12940-1-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"
    },
    {
      "commit": "8aa7e847d834ed937a9ad37a0f2ad5b8584c1ab0",
      "tree": "76c8b4f1362a928d426f2201790ab5d128f57724",
      "parents": [
        "c2cc49a2f8a479dde96a599646d30b6cc9dbed78"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 09 14:52:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "Fix congestion_wait() sync/async vs read/write confusion\n\nCommit 1faa16d22877f4839bd433547d770c676d1d964c accidentally broke\nthe bdi congestion wait queue logic, causing us to wait on congestion\nfor WRITE (\u003d\u003d 1) when we really wanted BLK_RW_ASYNC (\u003d\u003d 0) instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a9dd364358fbdc68faee5d20c2d648c320dc3cf0",
      "tree": "effcf61e5e198083faff82dc1e0bd6071639fca8",
      "parents": [
        "0222e6571c332563a48d4cf5487b67feabe60b5e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:45 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_sb to sb\n\nThis patch is a simple s/p_s_sb/sb/g to the reiserfs code.  This is the\nfirst in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "32e8b1062915d00d07d3b88a95174648e369b6a3",
      "tree": "f8d9da27137667072ca1f826c760fda1717a1c8d",
      "parents": [
        "c3a9c2109f84882b9b3178f6b1838d550d3df0ec"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:26 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:36 2009 -0700"
      },
      "message": "reiserfs: rearrange journal abort\n\nThis patch kills off reiserfs_journal_abort as it is never called, and\ncombines __reiserfs_journal_abort_{soft,hard} into one function called\nreiserfs_abort_journal, which performs the same work. It is silent\nas opposed to the old version, since the message was always issued\nafter a regular \u0027abort\u0027 message.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3a9c2109f84882b9b3178f6b1838d550d3df0ec",
      "tree": "08a502b8013eabb562f03be45622b0f63b1a34b9",
      "parents": [
        "78b6513d2881f1a759fb9825a036d926392de084"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:25 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:36 2009 -0700"
      },
      "message": "reiserfs: rework reiserfs_panic\n\nReiserFS panics can be somewhat inconsistent.\nIn some cases:\n * a unique identifier may be associated with it\n * the function name may be included\n * the device may be printed separately\n\nThis patch aims to make warnings more consistent. reiserfs_warning() prints\nthe device name, so printing it a second time is not required. The function\nname for a warning is always helpful in debugging, so it is now automatically\ninserted into the output. Hans has stated that every warning should have\na unique identifier. Some cases lack them, others really shouldn\u0027t have them.\nreiserfs_warning() now expects an id associated with each message. In the\nrare case where one isn\u0027t needed, \"\" will suffice.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45b03d5e8e674eb6555b767e1c8eb40b671ff892",
      "tree": "d74acd1be7f5102143df960e8cd692aadcc437df",
      "parents": [
        "1d889d9958490888b3fad1d486145d9a03559cbc"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:21 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:36 2009 -0700"
      },
      "message": "reiserfs: rework reiserfs_warning\n\nReiserFS warnings can be somewhat inconsistent.\nIn some cases:\n * a unique identifier may be associated with it\n * the function name may be included\n * the device may be printed separately\n\nThis patch aims to make warnings more consistent. reiserfs_warning() prints\nthe device name, so printing it a second time is not required. The function\nname for a warning is always helpful in debugging, so it is now automatically\ninserted into the output. Hans has stated that every warning should have\na unique identifier. Some cases lack them, others really shouldn\u0027t have them.\nreiserfs_warning() now expects an id associated with each message. In the\nrare case where one isn\u0027t needed, \"\" will suffice.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "600ed41675d8c384519d8f0b3c76afed39ef2f4b",
      "tree": "106f17dcaaee07671efdef651ff7f78b1afffb2f",
      "parents": [
        "702d21c6f6c790b12c4820cd2f29bc8472aed633"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:17 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:35 2009 -0700"
      },
      "message": "reiserfs: audit transaction ids to always be unsigned ints\n\nThis patch fixes up the reiserfs code such that transaction ids are\nalways unsigned ints.  In places they can currently be signed ints or\nunsigned longs.\n\nThe former just causes an annoying clm-2200 warning and may join a\ntransaction when it should wait.\n\nThe latter is just for correctness since the disk format uses a 32-bit\ntransaction id.  There aren\u0027t any runtime problems that result from it\nnot wrapping at the correct location since the value is truncated\ncorrectly even on big endian systems.  The 0 value might make it to\ndisk, but the mount-time checks will bump it to 10 itself.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5eb8caa83a76191feb9705c1a0a689ca260b91e",
      "tree": "15c5fcbcbff03c5fd9bbe15b194455e51d773dc3",
      "parents": [
        "c2dd0dae185423fb243b13d490c3fcfaa18ff333"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 08 13:24:05 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:49:04 2008 -0400"
      },
      "message": "[PATCH] remember mode of reiserfs journal\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "30c40d2c01f68c7eb1a41ab3552bdaf5dbf300d4",
      "tree": "38b69a80c4c0df13ef3b905f5195f6cadf930223",
      "parents": [
        "9a1c3542768b5a58e45a9216921cd10a3bae1205"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 19:50:45 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:49:00 2008 -0400"
      },
      "message": "[PATCH] propagate mode through open_bdev_excl/close_bdev_excl\n\nreplace open_bdev_excl/close_bdev_excl with variants taking fmode_t.\nsuperblock gets the value used to mount it stored in sb-\u003es_mode\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a1c3542768b5a58e45a9216921cd10a3bae1205",
      "tree": "c20ffda950db868ec7e1e35aed532962de2ecfd9",
      "parents": [
        "511de73ff09034fb89c8d54bed201a10d057328c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 20:40:24 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:48:58 2008 -0400"
      },
      "message": "[PATCH] pass fmode_t to blkdev_put()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "ca5de404ff036a29b25e9a83f6919c9f606c5841",
      "tree": "474da867c4d4086313cee90cdc3560bb17fade96",
      "parents": [
        "529ae9aaa08378cfe2a4350bded76f32cc8ff0ce"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Aug 02 12:02:13 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 21:56:09 2008 -0700"
      },
      "message": "fs: rename buffer trylock\n\nLike the page lock change, this also requires name change, so convert the\nraw test_and_set bitop to a trylock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "529ae9aaa08378cfe2a4350bded76f32cc8ff0ce",
      "tree": "d3ae998f9876c72a83a022805103a92111852b21",
      "parents": [
        "e9ba9698187ddbc0c5bfcf41de0349a662d23d02"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Aug 02 12:01:03 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 21:31:34 2008 -0700"
      },
      "message": "mm: rename page trylock\n\nConverting page lock to new locking bitops requires a change of page flag\noperation naming, so we might as well convert it to something nicer\n(!TestSetPageLocked_Lock \u003d\u003e trylock_page, SetPageLocked \u003d\u003e set_page_locked).\n\nThis also facilitates lockdeping of page lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90415deac75a761a25239af6f56381546f8d2201",
      "tree": "dbe5a717fa3629533653af99492cd348a0ec7e1f",
      "parents": [
        "afe70259076fff0446001eaa1a287f615241a357"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Jul 25 01:46:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: convert j_commit_lock to mutex\n\nj_commit_lock is a semaphore but uses it as if it were a mutex.  This patch\nconverts it to a mutex.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@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": "afe70259076fff0446001eaa1a287f615241a357",
      "tree": "d619c7f6235264a7b08aec16ba3563a686415079",
      "parents": [
        "f68215c4640a38d66429014e524a627bf572d26a"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Jul 25 01:46:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: convert j_flush_sem to mutex\n\nj_flush_sem is a semaphore but uses it as if it were a mutex.  This patch\nconverts it to a mutex.\n\n[akpm@linux-foundation.org: fix mutex_trylock retval treatment]\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@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": "f68215c4640a38d66429014e524a627bf572d26a",
      "tree": "9880a7adbdcda5dba88fe875520b787555b80802",
      "parents": [
        "00b441970a0ab48185244300ac7d4e4eb76df692"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Jul 25 01:46:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: convert j_lock to mutex\n\nj_lock is a semaphore but uses it as if it were a mutex.  This patch converts\nit to a mutex.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@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": "86098fa0115358abf5159093d11ddb306ce4b0da",
      "tree": "7a927fb77339a594608baf0ed2507085056bd262",
      "parents": [
        "4dbf930ed6c1f8aa992937d0461f8f70d4004aad"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Apr 30 00:54:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:51 2008 -0700"
      },
      "message": "reiserfs: use open_bdev_excl\n\nUse the proper helper to open a blockdevice by name for filesystem use,\nthis makes sure it\u0027s properly claimed (also added for open-by-number) and\ngets rid of the struct file abuse.\n\nTested by mounting a reiserfs filesystem with external journal.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nAcked-by: Edward Shishkin \u003cedward.shishkin@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": "fbe5498b3d5af44a8671800e85b2858c2ea236fa",
      "tree": "2dcd7a66cdcbe6742bde41cf05933c2d4ad1879d",
      "parents": [
        "8acc570fabc022d41baedc0c9bf976a4b9d16d6f"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:16:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:46 2008 -0700"
      },
      "message": "reiserfs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e13601bc6aa427a6483e7f66fde55ac3b5fed335",
      "tree": "dce69d42f4968b313eb06af31b03f079b856f483",
      "parents": [
        "9e902df6be2cb7444e5a0f7e2e72bcbf3b978f3e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:16:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:46 2008 -0700"
      },
      "message": "reiserfs: fix sparse warning in journal.c\n\nfs/reiserfs/journal.c:4319:2: warning: returning void-valued expression\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6188e10d38b8d7244ee7776d5f1f88c837b4b93f",
      "tree": "6675e02c47fb684a613e10513816b5dcc5de28a9",
      "parents": [
        "d7b1acd3b524b39f418e463e836b48ac041954d6"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Fri Apr 18 22:21:05 2008 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:22:54 2008 -0400"
      },
      "message": "Convert asm/semaphore.h users to linux/semaphore.h\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "cb680c1be62e9898fc2ca2a89d9fdba7c84a5c81",
      "tree": "967eba31bdb120305697f5d0292964abead07962",
      "parents": [
        "4d20851d3757ba5bece263a4c8c5a2bd4983cb5d"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Oct 18 23:39:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:35 2007 -0700"
      },
      "message": "reiserfs: ignore on disk s_bmap_nr value\n\nImplement support for file systems larger than 8 TiB.\n\nThe reiserfs superblock contains a 16 bit value for counting the number of\nbitmap blocks.  The rest of the disk format supports file systems up to 2^32\nblocks, but the bitmap block limitation artificially limits this to 8 TiB with\na 4KiB block size.\n\nRather than trust the superblock\u0027s 16-bit bitmap block count, we calculate it\ndynamically based on the number of blocks in the file system.  When an\nincorrect value is observed in the superblock, it is zeroed out, ensuring that\nolder kernels will not be able to mount the file system.\n\nUserspace support has already been implemented and shipped in reiserfsprogs\n3.6.20.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ee1667042c350003b9d3f35e5666cc8c43ce8aa",
      "tree": "331217461b684c298397d7347431c500c5969148",
      "parents": [
        "6c57c2c8d3862c8d5b908669654f6565da74ec19"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Oct 18 23:39:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:35 2007 -0700"
      },
      "message": "reiserfs: fix usage of signed ints for block numbers\n\nDo a quick signedness check for block numbers.  There are a number of places\nwhere signed integers are used for block numbers, which limits the usable file\nsystem size to 8 TiB.  The disk format, excepting a problem which will be\nfixed in the following patch, supports file systems up to 16 TiB in size.\nThis patch cleans up those sites so that we can enable the full usable size.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf3d0b8182f0746dbb9ed3609e3aa0c3802f45e8",
      "tree": "79e3ed35239b8b5ac6b1f6e64f31915ed89ae2a7",
      "parents": [
        "f4a1c2bce002f683801bcdbbc9fd89804614fb6b"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward@namesys.com",
        "time": "Tue Oct 16 23:30:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:01 2007 -0700"
      },
      "message": "reiserfs: do not repair wrong journal params\n\nWhen mounting a file system with wrong journal params do not try to repair\nthem, suggest fsck instead.\n\nSigned-off-by: Edward Shishkin \u003cedward@namesys.com\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": "398c95bdf2c24d7866692a40ba04425aef238cdd",
      "tree": "d0c54706f98e8c031453e3bb235ca9be22206fed",
      "parents": [
        "e82ce352335b643755a7fa4130b11d6d7adcf10c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 16 23:29:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:57 2007 -0700"
      },
      "message": "try to reap reiserfs pages left around by invalidatepage\n\nreiserfs_invalidatepage will refuse to free pages if they have been logged\nin data\u003djournal mode, or were pinned down by a data\u003dordered operation.  For\ndata\u003djournal, this is fairly easy to trigger just with fsx-linux, and it\nresults in a large number of pages hanging around on the LRUs with\npage-\u003emapping \u003d\u003d NULL.\n\nCalling try_to_free_buffers when reiserfs decides it is done with the page\nallows it to be freed earlier, and with much less VM thrashing.  Lock\nordering rules mean that reiserfs can\u0027t call lock_page when it is releasing\nthe buffers, so TestSetPageLocked is used instead.  Contention on these\npages should be rare, so it should be sufficient most of the time.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Vladimir V. Saveliev\" \u003cvs@namesys.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "deba0f49b9345f885a53a077623a68cef89c01d5",
      "tree": "cd8538a476ac76ff41a7070c472b1f28cda536e2",
      "parents": [
        "e423003028183df54f039dfda8b58c49e78c89d7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 16 23:26:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "fs/reiserfs/: cleanups\n\n- remove the following no longer used functions:\n  - bitmap.c: reiserfs_claim_blocks_to_be_allocated()\n  - bitmap.c: reiserfs_release_claimed_blocks()\n  - bitmap.c: reiserfs_can_fit_pages()\n\n- make the following functions static:\n  - inode.c: restart_transaction()\n  - journal.c: reiserfs_async_progress_wait()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Vladimir V. Saveliev \u003cvs@namesys.com\u003e\nCc: 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": "beb7dd86a101263bf63a78c7c6d4da3849b35bd6",
      "tree": "9afe81ca9e92ab8aacc999ae118b27d547721f11",
      "parents": [
        "3dde6ad8fc3939d345a3768464ecff43c91d511a"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed May 09 07:14:03 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 07:14:03 2007 +0200"
      },
      "message": "Fix misspellings collected by members of KJ list.\n\nFix the misspellings of \"propogate\", \"writting\" and (oh, the shame\n:-) \"kenrel\" in the source tree.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "5ab2f7e0fdd04148e08348701d6bd6a292ce2d26",
      "tree": "50de16bd03833271dad8c36f2b01964445305a66",
      "parents": [
        "35bab756b49bd148760a3bbd3c907cd74754dbb4"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Tue May 08 00:30:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "reiserfs: use __set_current_state()\n\nuse __set_current_state(TASK_*) instead of current-\u003estate \u003d TASK_*, in\nfs/reiserfs\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.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": "4c1ac1b49122b805adfa4efc620592f68dccf5db",
      "tree": "87557f4bc2fd4fe65b7570489c2f610c45c0adcd",
      "parents": [
        "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
        "d916faace3efc0bf19fe9a615a1ab8fa1a24cd93"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/infiniband/core/iwcm.c\n\tdrivers/net/chelsio/cxgb2.c\n\tdrivers/net/wireless/bcm43xx/bcm43xx_main.c\n\tdrivers/net/wireless/prism54/islpci_eth.c\n\tdrivers/usb/core/hub.h\n\tdrivers/usb/input/hid-core.c\n\tnet/core/netpoll.c\n\nFix up merge failures with Linus\u0027s head and fix new compilation failures.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "0779bf2d2ecc4d9b1e9437ae659f50e6776a7666",
      "tree": "dbcc9735ab63a833056572c8f4f0efe911246562",
      "parents": [
        "3cb2fccc5f48a4d6269dfd00b4db570fca2a04d5"
      ],
      "author": {
        "name": "Matt LaPlante",
        "email": "kernel1@cyberdogtech.com",
        "time": "Thu Nov 30 05:24:39 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Nov 30 05:24:39 2006 +0100"
      },
      "message": "Fix misc .c/.h comment typos\n\nFix various .c/.h typos in comments (no code changes).\n\nSigned-off-by: Matt LaPlante \u003ckernel1@cyberdogtech.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3fcfab16c5b86eaa3db3a9a31adba550c5b67141",
      "tree": "bd348fa081b8fbec2c79fbf8f173a306d70b2b2c",
      "parents": [
        "79e2de4bc53d7ca2a8eedee49e4a92479b4b530e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Oct 19 23:28:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:35 2006 -0700"
      },
      "message": "[PATCH] separate bdi congestion functions from queue congestion functions\n\nSeparate out the concept of \"queue congestion\" from \"backing-dev congestion\".\nCongestion is a backing-dev concept, not a queue concept.\n\nThe blk_* congestion functions are retained, as wrappers around the core\nbacking-dev congestion functions.\n\nThis proper layering is needed so that NFS can cleanly use the congestion\nfunctions, and so that CONFIG_BLOCK\u003dn actually links.\n\nCc: \"Thomas Maier\" \u003cbalagi@justmail.de\u003e\nCc: \"Jens Axboe\" \u003cjens.axboe@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "14a61442c2203d2a49f2f954bfa9259c0ddac1aa",
      "tree": "c146effc3dbaa41dd6fdd01e6f3f8fcdd63ad705",
      "parents": [
        "8d8f3cbe777e014123bfa63f2cebd6eb29032225"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Tue Oct 03 23:36:38 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 03 23:36:38 2006 +0200"
      },
      "message": "BUG_ON conversion for fs/reiserfs\n\nThis patch converts several if () BUG(); construct to BUG_ON();\nwhich occupies less space, uses unlikely and is safer when\nBUG() is disabled. S_ISREG() has no side effects, so the\nconversion is safe.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "a3172027148120b8f8797cbecc7d0a0b215736a1",
      "tree": "9da7b5eafe136c8c5b9e76e9a9cccd70899df252",
      "parents": [
        "25736b1c692d436508585d1d710912e6f76be2d8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Fri Sep 29 01:59:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:11 2006 -0700"
      },
      "message": "[PATCH] Fix reiserfs latencies caused by data\u003dordered\n\nReiserFS does periodic cleanup of old transactions in order to limit the\nlength of time a journal replay may take after a crash.  Sometimes, writing\nmetadata from an old (already committed) transaction may require committing\na newer transaction, which also requires writing all data\u003dordered buffers.\nThis can cause very long stalls on journal_begin.\n\nThis patch makes sure new transactions will not need to be committed before\ntrying a periodic reclaim of an old transaction.  It is low risk because if\na bad decision is made, it just means a slightly longer journal replay\nafter a crash.\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": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "f116629d03655adaf7832b93b03c99391d09d4a7",
      "tree": "526f689619817df3c23ab00e3228b4776bde2190",
      "parents": [
        "179e09172ab663b8587ecc46bb18a56a770304a9"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Mon Jun 26 00:24:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:18 2006 -0700"
      },
      "message": "[PATCH] fs: use list_move()\n\nThis patch converts the combination of list_del(A) and list_add(A, B) to\nlist_move(A, B) under fs/.\n\nCc: Ian Kent \u003craven@themaw.net\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Hans Reiser \u003creiserfs-dev@namesys.com\u003e\nCc: Urban Widmark \u003curban@teststation.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a44c94a7b82a425b73384c104d5cb3dd3caa075e",
      "tree": "da86b5245bea89942f2639fec2d6f7378a117836",
      "parents": [
        "23f9e0f891c9b159a199629d4426f6ae0c383508"
      ],
      "author": {
        "name": "Alexander Zarochentsev",
        "email": "zam@namesys.com",
        "time": "Sat Mar 25 03:06:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:51 2006 -0800"
      },
      "message": "[PATCH] reiserfs: handle trans_id overflow\n\nReiserfs does not handle transaction ID overflow correctly.  Transaction ID\n\u003d\u003d 0 causes reiserfs to crash.  The patch fixes all places where the\ntransaction ID is incremented.\n\nSigned-off-by: Alexander Zarochentsev \u003czam@namesys.com\u003e\nSigned-off-by: Hans Reiser \u003creiser@namesys.com\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c499ec24c31edf270e777a868ffd0daddcfe7ebd",
      "tree": "bf16f601b5446bb0b9fe3f90030a76ac4e25fc11",
      "parents": [
        "a57ebfdb2cf9fa60dfa2f403f70ef6c432ca2a62"
      ],
      "author": {
        "name": "Vladimir V. Saveliev",
        "email": "vs@namesys.com",
        "time": "Thu Mar 02 02:54:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 02 08:33:08 2006 -0800"
      },
      "message": "[PATCH] reiserfs: do not check if unsigned \u003c 0\n\nThis patch fixes bugs in reiserfs where unsigned integers were checked\nwhether they are less then 0.\n\nSigned-off-by: Vladimir V. Saveliev \u003cvs@namesys.com\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Hans Reiser \u003creiser@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ae1ea447d21c4fecf5df8d0e1022461274fb4e8",
      "tree": "1827567dfb6532bad3f72f10e1bb023cdaee212f",
      "parents": [
        "3d4492f81dd7b486f1be0616a1ce7f73760f406e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Wed Feb 01 03:06:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:26 2006 -0800"
      },
      "message": "[PATCH] reiserfs: reiserfs fix journal accounting in journal_transaction_should_end\n\nreiserfs: journal_transaction_should_end should increase the count of\nblocks allocated so the transaction subsystem can keep new writers from\ncreating a transaction that is too large.\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": "3d4492f81dd7b486f1be0616a1ce7f73760f406e",
      "tree": "5161d47d236e18bdb5a1cdafc21e2a55d8de4d15",
      "parents": [
        "e0e851cf30f1a9bd2e2a7624e9810378d6a2b072"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Wed Feb 01 03:06:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:26 2006 -0800"
      },
      "message": "[PATCH] reiserfs: reiserfs write_ordered_buffers should not oops on dirty non-uptodate bh\n\nwrite_ordered_buffers should handle dirty non-uptodate buffers without a\nBUG()\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": "e0e851cf30f1a9bd2e2a7624e9810378d6a2b072",
      "tree": "a8cf33d9b22594fb5c1094bd8b15f2f315b53f2d",
      "parents": [
        "fc5cd582e9c934ddaf6f310179488932cd154794"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Wed Feb 01 03:06:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:26 2006 -0800"
      },
      "message": "[PATCH] reiserfs: reiserfs hang and performance fix for data\u003djournal mode\n\nIn data\u003djournal mode, reiserfs writepage needs to make sure not to trigger\ntransactions while being run under PF_MEMALLOC.  This patch makes sure to\nredirty the page instead of forcing a transaction start in this case.\n\nAlso, calling filemap_fdata* in order to trigger io on the block device can\ncause lock inversions on the page lock.  Instead, do simple batching from\nflush_commit_list.\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": "d62b1b87a7d1c3a21dddabed4251763090be3182",
      "tree": "52d563a2af8bde77c9e4638e3636c8cd3bb0c01e",
      "parents": [
        "ec191574b9c3cb7bfb95e4f803b63f7c8dc52690"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Wed Feb 01 03:06:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:26 2006 -0800"
      },
      "message": "[PATCH] resierfs: fix reiserfs_invalidatepage race against data\u003dordered\n\nAfter a transaction has closed but before it has finished commit, there is\na window where data\u003dordered mode requires invalidatepage to pin pages\ninstead of freeing them.  This patch fixes a race between the\ninvalidatepage checks and data\u003dordered writeback, and it also adds a check\nto the reiserfs write_ordered_buffers routines to write any anonymous\nbuffers that were dirtied after its first writeback loop.\n\nThat bug works like this:\n\nproc1: transaction closes and a new one starts\nproc1: write_ordered_buffers starts processing data\u003dordered list\nproc1: buffer A is cleaned and written\nproc2: buffer A is dirtied by another process\nproc2: File is truncated to zero, page A goes through invalidatepage\nproc2: reiserfs_invalidatepage sees dirty buffer A with reiserfs\n       journal head, pins it\nproc1: write_ordered_buffers frees the journal head on buffer A\n\nAt this point, buffer A stays dirty forever\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": "8c777cc4be1390862d053cbc002246e87572147b",
      "tree": "d8149bdfd5a6ce17e273aff5d7a2adaddd098d8d",
      "parents": [
        "d739b42b82773206297db1fc0d96ef895a5d9688"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:06:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:25 2006 -0800"
      },
      "message": "[PATCH] reiserfs: use __GFP_NOFAIL instead of yield and retry loop for allocation\n\nThis patch replaces yield and retry loop with __GFP_NOFAIL in\nalloc_journal_list().\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d739b42b82773206297db1fc0d96ef895a5d9688",
      "tree": "b23e68bf685ca8a383e10b8673e5d1c547988b74",
      "parents": [
        "d19720a909b4443f78cbb03f4f090180e143ad9d"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:06:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:25 2006 -0800"
      },
      "message": "[PATCH] reiserfs: remove kmalloc wrapper\n\nRemove kmalloc() wrapper from fs/reiserfs/.  Please note that a reiserfs\n/proc entry format is changed because kmalloc statistics is removed.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ef43bc4fc32bec8fda7bae8948b774616dc9e496",
      "tree": "75cec437c9909f29752ad77b50fbd09af55e7817",
      "parents": [
        "0c8365ecc57f87e4d982c3fe59a4c1b985484e7f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 11 12:17:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:12 2006 -0800"
      },
      "message": "[PATCH] reiserfs: fix assertion failure in reiserfs+journaled quotas\n\nSometimes we call do_journal_end() with t_refcount \u003d\u003d 0.  If quota is\nturned on and we happen to have some inode with preallocation bad things\nhappen as we try to use the current handle for quota operations.  Checks\nfor t_refcount in journal_begin() fail and we Oops.  We raise t_refcount to\nmake those checks happy.  We should not cause any bad as all the needed\nquota blocks should be already attached to the transaction (they were\nattached to the transaction when we allocated those preallocation blocks).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: 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": "5d5e815618c4a8b53806845268c951201d14af6e",
      "tree": "5515610e7747c52d20fe20ea4bc48186b2ff7ac0",
      "parents": [
        "ea54c96c04cfd9fec881e403d8f7931b47f7b2a6"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Dec 14 14:38:36 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Dec 14 18:56:07 2005 -0800"
      },
      "message": "[PATCH] reiserfs: skip commit on io error\n\nThis should have been part of the original io error patch, but got\ndropped somewhere along the way.\n\nIt\u0027s extremely important when handling the i/o error in the journal to\nnot commit the transaction with corrupt data.  This patch adds that code\nback in.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "576f6d79564d0d2c1f43088e6805674d2e122935",
      "tree": "fcd2bc41909102b122d8c3b9b915396d0173787f",
      "parents": [
        "9f232a125bf86b0dae09f8ea4a0553535cf6b658"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Tue Nov 29 19:34:39 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 19:47:03 2005 -0800"
      },
      "message": "[PATCH] reiserfs: handle cnode allocation failure gracefully\n\nIf an external device is used for a journal, by default it will use the\nentire device.  The reiserfs journal code allocates structures per journal\nblock when it mounts the file system.  If the journal device is too large,\nand memory cannot be allocated for the structures, it will continue and\nultimately panic when it can\u0027t pull one off the free list.\n\nThis patch handles the allocation failure gracefully and prints an error\nmessage at mount time.\n\nChanges: Updated error message to be more descriptive to the user.\n\nDiscussed and approved on ReiserFS Mailing List, Nov 28.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac",
      "tree": "41ff880a87412cf55eb12425e916fda57955ee5c",
      "parents": [
        "373016e9e1353f2af871993d27d00768f08cc883"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:36 2005 -0700"
      },
      "message": "[PATCH] fs: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.  Also use helper\nfunctions to convert between human time units and jiffies rather than constant\nHZ division to avoid rounding errors.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53778ffde601c962ad9250c4998df7de6f428246",
      "tree": "c7f856d911c435fe6bb586f3d239421eac7c97da",
      "parents": [
        "26707699b5337ea471ba1774447e8a1170c99e52"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:56 2005 -0700"
      },
      "message": "[PATCH] Change ll_rw_block() calls in Reiser\n\nWe need to be sure that current data in buffer are sent to disk.  Hence we\nneed to call ll_rw_block() with SWRITE.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77933d7276ee8fa0e2947641941a6f7a100a327b",
      "tree": "e3a42724642410f5257c794a71b34642092eedd5",
      "parents": [
        "03e259a9cdbd0583e71468293aaa1ccadbdaeff1"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl@dif.dk",
        "time": "Wed Jul 27 11:46:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:26:20 2005 -0700"
      },
      "message": "[PATCH] clean up inline static vs static inline\n\n`gcc -W\u0027 likes to complain if the static keyword is not at the beginning of\nthe declaration.  This patch fixes all remaining occurrences of \"inline\nstatic\" up with \"static inline\" in the entire kernel tree (140 occurrences in\n47 files).\n\nWhile making this change I came across a few lines with trailing whitespace\nthat I also fixed up, I have also added or removed a blank line or two here\nand there, but there are no functional changes in the patch.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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": "22e2c507c301c3dbbcf91b4948b88f78842ee6c9",
      "tree": "9a97c91d1362e69703aa286021daffb8a5456f4c",
      "parents": [
        "020f46a39eb7b99a575b9f4d105fce2b142acdf1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Jun 27 10:55:12 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:33:29 2005 -0700"
      },
      "message": "[PATCH] Update cfq io scheduler to time sliced design\n\nThis updates the CFQ io scheduler to the new time sliced design (cfq\nv3).  It provides full process fairness, while giving excellent\naggregate system throughput even for many competing processes.  It\nsupports io priorities, either inherited from the cpu nice value or set\ndirectly with the ioprio_get/set syscalls.  The latter closely mimic\nset/getpriority.\n\nThis import is based on my latest from -mm.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bdd5b29c6bc835dab71148afd5952f9cd278eef1",
      "tree": "b184956460a06c3d07e7eca726459f53232db21d",
      "parents": [
        "7282bee78798294bb1f0211a842cdb9f4872db3d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 23 22:01:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:23 2005 -0700"
      },
      "message": "[PATCH] Make reiserfs BUG on too big transaction\n\nMake reiserfs BUG() when somebody tries to start a larger transaction than\nit\u0027s allowed (currently the code just silently deadlocks).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-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": "b8cc936f6295bba23513a49d858ea82f64982faf",
      "tree": "3541a86798a59c4f352d7369bc15cff7eab68992",
      "parents": [
        "3e8962be915bacc1d70e4849a075041838d60a3f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@www.linux.org.uk",
        "time": "Sun May 01 08:59:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:18 2005 -0700"
      },
      "message": "[PATCH] reiserfs endianness: fix endianness bugs\n\nfixes for a couple of bugs exposed by the above: le32_to_cpu() used on 16bit\nvalue and missing conversion in comparison of host- and little-endian values.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74f9f974a64dc3de554aa1977bf108334436e47b",
      "tree": "0fe911ce4f0b5003e334c6492c5ee7d70ac0dfbd",
      "parents": [
        "439bd3708792e31057db424d1165473122d531a3"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward@namesys.com",
        "time": "Sun May 01 08:59:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:09 2005 -0700"
      },
      "message": "[PATCH] reiserfs: journal_init fix\n\nThis fixes segmentation fault when specifying bad journal device via\na mount option.\n\nDon\u0027t pass a zero pointer to bdevname() if filp_open() returns error.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\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"
    }
  ]
}
