)]}'
{
  "log": [
    {
      "commit": "c0752aa7e4d48cc19e167ccb0092bea8e5b6ca3a",
      "tree": "2ff43322a35871364f9be2c2e4a6427db7db8a0f",
      "parents": [
        "1c47f09592148ba629edb2020d4dd94f81b16d11"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue May 01 12:00:34 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 02 09:14:36 2012 +0100"
      },
      "message": "GFS2: eliminate log elements and simplify\n\nThis patch eliminates the gfs2_log_element data structure and\nrolls its two components into the gfs2_bufdata. This makes the code\neasier to understand and makes it easier to migrate to a rbtree\nto keep the list sorted.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "144a4c2ff75552e2aabb9256ca0ec5e277097153",
      "tree": "aa27e93cc135ba15eb3fe17e732ed74b1a7b8886",
      "parents": [
        "4306629e1c0fd098d52f499e5a60aaa03e30df0d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 19 10:38:50 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:38 2012 +0100"
      },
      "message": "GFS2: Log code fixes\n\nThis patch removes a log lock from around atomic operation where\nit is not needed, removes an unused variable, and also changes\na void pointer used incorrectly to a struct page pointer.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c50b91c4bd511dfe844e2aa7be429b6b88406353",
      "tree": "0a9584ec238036b599bb717db5bd1a7df5c616ca",
      "parents": [
        "dad30e9031c5927c30b402f73ac57ffbe09dc9ee"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 16 16:40:56 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:36 2012 +0100"
      },
      "message": "GFS2: Remove bd_list_tr\n\nThis is another clean up in the logging code. This per-transaction\nlist was largely unused. Its main function was to ensure that the\nnumber of buffers in a transaction was correct, however that counter\nwas only used to check the number of buffers in the bd_list_tr, plus\nan assert at the end of each transaction. With the assert now changed\nto use the calculated buffer counts, we can remove both bd_list_tr and\nits associated counter.\n\nThis should make the code easier to understand as well as shrinking\na couple of structures.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e8c92ed769008cfc799497f0a34c8faf46243c4d",
      "tree": "6e00d9ddfd7d02ac9b1ac50d99de946d42443922",
      "parents": [
        "2f7ee358e5a0fedcb45c64bd83dad9dc9a212508"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 16 09:28:31 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:34 2012 +0100"
      },
      "message": "GFS2: Clean up log write code path\n\nPrior to this patch, we have two ways of sending i/o to the log.\nOne of those is used when we need to allocate both the data\nto be written itself and also a buffer head to submit it. This\nis done via sb_getblk and friends. This is used mostly for writing\nlog headers.\n\nThe other method is used when writing blocks which have some\nin-place counterpart. This is the case for all the metadata\nblocks which are journalled, and when journaled data is in use,\nfor unescaped journalled data blocks.\n\nThis patch replaces both of those two methods, and about half\na dozen separate i/o submission points with a single i/o\nsubmission function. We also go direct to bio rather than\nusing buffer heads, since this allows us to build i/o\nrequests of the maximum size for the block device in\nquestion. It also reduces the memory required for flushing\nthe log, which can be very useful in low memory situations.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fdb76a4228303491b1b9b8923310f2cbcec8dc9f",
      "tree": "5b08c14e65adcd54dc440955b7a6e579e426a5cc",
      "parents": [
        "af3a3ab2966112c0d0a44df7eeb1e95fe32d4495"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 02 15:34:36 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:24 2012 +0100"
      },
      "message": "GFS2: Drop \"pull\" argument from log_write_header()\n\nThe \"pull\" argument to log_write_header() is only used\nfor debug purposes and it is not really needed any more. There\nare other tests for this particular problem, so I think we can\ndispose of it in order to simplify the code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "34cc1781c2ae921107e89f6633cfab7436e355ba",
      "tree": "e9577ab5ca926d6f2aaa8f0a0b28222c87071088",
      "parents": [
        "75ca61c101601a7071d93571920be9697b3fda9b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 09 10:45:56 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 09 14:07:06 2012 +0000"
      },
      "message": "GFS2: Clean up log flush header writing\n\nWe already send both a pre and post flush to the block device\nwhen writing a journal header. There is no need to wait for\nthe previous I/O specifically when we do this, unless we\u0027ve\nturned \"barriers\" off.\n\nAs a side effect, this also cleans up the code path for flushing\nthe journal and makes it more readable.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "08728f2d8b0ebf01618d3d63e69966f7d43859b9",
      "tree": "722f9cadfe8601e4173d722a28fe98332587d255",
      "parents": [
        "4a36d08d0d1cba0581d1656739102ce936f26557"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 21 11:14:00 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:11:27 2012 +0000"
      },
      "message": "GFS2: Make bd_cmp() static\n\nAdd missing static to bd_cmp()\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4a36d08d0d1cba0581d1656739102ce936f26557",
      "tree": "9cff2e9a41944f3b76507711d295fe2bd5f0f1d8",
      "parents": [
        "66fc061bda3526650328b73f69985da3518c4256"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Feb 14 14:49:57 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:10:53 2012 +0000"
      },
      "message": "GFS2: Sort the ordered write list\n\nThis patch sorts the ordered write list for GFS2 writes.\nThis increases the throughput for simultaneous writes.\nFor example, if you have ten processes, all doing:\ndd if\u003d/dev/zero of\u003d/mnt/gfs2/fileX\non different files, the throughput will be much better.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "47ac5537a794fc71f89d51af492a945bd233f70c",
      "tree": "65c9c68c8b14ceb0fae31f5a03ec4d811fdbec99",
      "parents": [
        "a245769f254bbbea868e2cf8dc42daa061cd276f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 03 15:21:59 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:09:59 2012 +0000"
      },
      "message": "GFS2: Move two functions from log.c to lops.c\n\ngfs2_log_get_buf() and gfs2_log_fake_buf() are both used\nonly in lops.c, so move them next to their callers and they\ncan then become static.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eb59c505f8a5906ad2e053d14fab50eb8574fd6f",
      "tree": "c6e875adc12b481b916e847e8f80b8881a0fb02c",
      "parents": [
        "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
        "c233523b3d392e530033a7587d7970dc62a02361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  PM / Hibernate: Implement compat_ioctl for /dev/snapshot\n  PM / Freezer: fix return value of freezable_schedule_timeout_killable()\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  PM: Drop generic_subsys_pm_ops\n  PM / Sleep: Remove forward-only callbacks from AMBA bus type\n  PM / Sleep: Remove forward-only callbacks from platform bus type\n  PM: Run the driver callback directly if the subsystem one is not there\n  PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n  PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.\n  PM / Sleep: Merge internal functions in generic_ops.c\n  PM / Sleep: Simplify generic system suspend callbacks\n  PM / Hibernate: Remove deprecated hibernation snapshot ioctls\n  PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused\nXBT_FORCE_SLEEP bit\n"
    },
    {
      "commit": "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6",
      "tree": "0b763388360a5a9043986e1f2201e43df74ebc46",
      "parents": [
        "3a7cbd50f74907580eb47a8d08e1f29741b81abf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "message": "freezer: unexport refrigerator() and update try_to_freeze() slightly\n\nThere is no reason to export two functions for entering the\nrefrigerator.  Calling refrigerator() instead of try_to_freeze()\ndoesn\u0027t save anything noticeable or removes any race condition.\n\n* Rename refrigerator() to __refrigerator() and make it return bool\n  indicating whether it scheduled out for freezing.\n\n* Update try_to_freeze() to return bool and relay the return value of\n  __refrigerator() if freezing().\n\n* Convert all refrigerator() users to try_to_freeze().\n\n* Update documentation accordingly.\n\n* While at it, add might_sleep() to try_to_freeze().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "20ed0535d35b74c9e4fa5777766d6e836fe3c90c",
      "tree": "9dc6ec31d998d52a5d66017ee737f108000134a7",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 31 09:52:02 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 09:51:53 2011 +0000"
      },
      "message": "GFS2: Fix up REQ flags\n\nChristoph has split up REQ_PRIO from REQ_META. That means that\nwe can drop REQ_PRIO from places where is it not needed. I\u0027m\nnot at all sure that the combination WRITE_FLUSH_FUA | REQ_PRIO\nmakes any kind of sense, anyway.\n\nIn addition, I\u0027ve added REQ_META to one place in the code where\nit was missing. REQ_PRIO has been left for read/writes triggered\nby glock acquisition and writeback only. We can adjust it again\nif required, but these are the most important points from a\nperformance perspective.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "65299a3b788bd274bed92f9fa3232082c9f3ea70",
      "tree": "191c0afe31c15ac4c1bab96e0a07fddb097d0de8",
      "parents": [
        "5dc06c5a70b79a323152bec7e55783e705767e63"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 14:50:29 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Aug 23 14:50:29 2011 +0200"
      },
      "message": "block: separate priority boosting from REQ_META\n\nAdd a new REQ_PRIO to let requests preempt others in the cfq I/O schedule,\nand lave REQ_META purely for marking requests as metadata in blktrace.\n\nAll existing callers of REQ_META except for XFS are updated to also\nset REQ_PRIO for now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "380f7c65a7eb3288e4b6812acf3474a1de230707",
      "tree": "7abe4b4ce390afc6b4d2bc7cae0ec298fe2efa3c",
      "parents": [
        "3942ae5319640ced5844b75f44884e4bcb8a2f16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "message": "GFS2: Resolve inode eviction and ail list interaction bug\n\nThis patch contains a few misc fixes which resolve a recently\nreported issue. This patch has been a real team effort and has\nreceived a lot of testing.\n\nThe first issue is that the ail lock needs to be held over a few\nmore operations. The lock thats added into gfs2_releasepage() may\npossibly be a candidate for replacing with RCU at some future\npoint, but at this stage we\u0027ve gone for the obvious fix.\n\nThe second issue is that gfs2_write_inode() can end up calling\na glock recursively when called from gfs2_evict_inode() via the\nsyncing code, so it needs a guard added.\n\nThe third issue is that we either need to not truncate the metadata\npages of inodes which have zero link count, but which we cannot\ndeallocate due to them still being in use by other nodes, or we need\nto ensure that those pages have all made it through the journal and\nail lists first. This patch takes the former approach, but the\nlatter has also been tested and there is nothing to choose between\nthem performance-wise. So again, we could revise that decision\nin the future.\n\nAlso, the inode eviction process is now better documented.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nTested-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nReported-by: Barry J. Marson \u003cbmarson@redhat.com\u003e\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "26b06a6958df0f12f1a654db8598433eb89cc024",
      "tree": "4f65fc66e5bef81d7ef16f620686a048c49c7196",
      "parents": [
        "6d3117b41295150d4ac70622055dd8f5529d86b2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 19:21:07 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 19:21:07 2011 +0100"
      },
      "message": "GFS2: Wait properly when flushing the ail list\n\nThe ail flush code has always relied upon log flushing to prevent\nit from spinning needlessly. This fixes it to wait on the last\nI/O request submitted (we don\u0027t need to wait for all of it)\ninstead of either spinning with io_schedule or sleeping.\n\nAs a result cpu usage of gfs2_logd is much reduced with certain\nworkloads.\n\nReported-by: Abhijith Das \u003cadas@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4f1de018215fb56940ce5793e11becd1e8cd6e44",
      "tree": "4f90d7ef5e219615eab7c45e421fa45cb2729b1e",
      "parents": [
        "6905d9e4dda6112f007e9090bca80507da158e63"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 26 10:23:56 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:48:07 2011 +0100"
      },
      "message": "GFS2: Fix ail list traversal\n\nIn the recent patches to update the AIL list code, I managed to\nforget that the ail list lock got dropped, even though I\nadded a comment specifically to remind myself :(\n\nReported-by: Barry Marson \u003cbmarson@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c83ae9cad8776bab153a05cc466be39f14011091",
      "tree": "b8ae7e94b03e3e6d21df24ff41d466ea552b6ccb",
      "parents": [
        "4667a0ec32867865fd4deccf834594b3ea831baf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 14:18:38 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:58 2011 +0100"
      },
      "message": "GFS2: Add an AIL writeback tracepoint\n\nAdd a tracepoint for monitoring writeback of the AIL.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4667a0ec32867865fd4deccf834594b3ea831baf",
      "tree": "bff74fb13700e4087972fce94e45fd69dae7939b",
      "parents": [
        "f42ab0852946c1fb5103682c5897eb3da908e4b0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 14:18:09 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:37 2011 +0100"
      },
      "message": "GFS2: Make writeback more responsive to system conditions\n\nThis patch adds writeback_control to writing back the AIL\nlist. This means that we can then take advantage of the\ninformation we get in -\u003ewrite_inode() in order to set off\nsome pre-emptive writeback.\n\nIn addition, the AIL code is cleaned up a bit to make it\na bit simpler to understand.\n\nThere is still more which can usefully be done in this area,\nbut this is a good start at least.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5ac048bb7ea6e87b06504b999017cfa1f38f4092",
      "tree": "218a2dd0e6f6d39ead51bb32c10f801f6153c069",
      "parents": [
        "1027efaa238e1b65c07b6c2d9e270e548c2bdb07"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 16:25:51 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:59:25 2011 +0100"
      },
      "message": "GFS2: Use filemap_fdatawrite() to write back the AIL\n\nIn order to ensure that the mapping stats (and thus the bdi) are correctly\nupdated, this patch changes the AIL writeback to use the filemap_datawrite\nfunction. This helps prevent stalls in balance_dirty_pages() due to\nlarge amounts of dirty metadata when there is little or no dirty data\naround.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "c618e87a5fd02aaad006c12d5a80a231dfa39250",
      "tree": "3f8f1f39fb6dedf3cb72fbd71377cc0eecafc7ce",
      "parents": [
        "d6a079e82efd5fcbb1c7295f22e123c2cc748018"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 12:40:29 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 12:40:29 2011 +0000"
      },
      "message": "GFS2: Update to AIL list locking\n\nThe previous patch missed a couple of places where the AIL list\nneeded locking, so this fixes up those places, plus a comment\nis corrected too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "d6a079e82efd5fcbb1c7295f22e123c2cc748018",
      "tree": "f95f3369dfb560bfc5d282577ca1edec0487e1d7",
      "parents": [
        "e4a7b7b0c98efcdcc4c1f6eb10925dec1fbc4016"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Mar 11 11:52:25 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 11 11:52:25 2011 +0000"
      },
      "message": "GFS2: introduce AIL lock\n\nThe log lock is currently used to protect the AIL lists and\nthe movements of buffers into and out of them. The lists\nare self contained and no log specific items outside the\nlists are accessed when starting or emptying the AIL lists.\n\nHence the operation of the AIL does not require the protection\nof the log lock so split them out into a new AIL specific lock\nto reduce the amount of traffic on the log lock. This will\nalso reduce the amount of serialisation that occurs when\nthe gfs2_logd pushes on the AIL to move it forward.\n\nThis reduces the impact of log pushing on sequential write\nthroughput.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fa251f89903d73989e2f63e13d0eaed1e07ce0da",
      "tree": "3f7fe779941e3b6d67754dd7c44a32f48ea47c74",
      "parents": [
        "dd3932eddf428571762596e17b65f5dc92ca361b",
        "cd07202cc8262e1669edff0d97715f3dd9260917"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Oct 19 09:13:04 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Oct 19 09:13:04 2010 +0200"
      },
      "message": "Merge branch \u0027v2.6.36-rc8\u0027 into for-2.6.37/barrier\n\nConflicts:\n\tblock/blk-core.c\n\tdrivers/block/loop.c\n\tmm/swapfile.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5f4874903df3562b9d5649fc1cf7b8c6bb238e42",
      "tree": "b66dbafa2fd3f32c6df72752d95cad260abd35bd",
      "parents": [
        "03a7ab083e4d619136d6f07ce70fa9de0bc436fc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 09 14:45:00 2010 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 17 14:00:10 2010 +0100"
      },
      "message": "GFS2: gfs2_logd should be using interruptible waits\n\nLooks like this crept in, in a recent update.\n\nReported-by:  Krzysztof Urbaniak \u003curban@bash.org.pl\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f1e4d518c3beddf67f7722f3548eda0ec7006204",
      "tree": "eafc3939ae2941ce8c543383a2e7cf569076e362",
      "parents": [
        "c3b9a62c8f932f32a733d6b628f61f3f28345727"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 18 05:29:13 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:39 2010 +0200"
      },
      "message": "gfs2: replace barriers with explicit flush / FUA usage\n\nSwitch to the WRITE_FLUSH_FUA flag for log writes, remove the EOPNOTSUPP\ndetection for barriers and stop setting the barrier flag for discards.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7b6d91daee5cac6402186ff224c3af39d79f4a0e",
      "tree": "b1518cf0b6c301178e0a320f80610cd5b3aa7625",
      "parents": [
        "33659ebbae262228eef4e0fe990f393d1f0ed941"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "message": "block: unify flags for struct bio and struct request\n\nRemove the current bio flags and reuse the request flags for the bio, too.\nThis allows to more easily trace the type of I/O from the filesystem\ndown to the block driver.  There were two flags in the bio that were\nmissing in the requests:  BIO_RW_UNPLUG and BIO_RW_AHEAD.  Also I\u0027ve\nrenamed two request flags that had a superflous RW in them.\n\nNote that the flags are in bio.h despite having the REQ_ name - as\nblkdev.h includes bio.h that is the only way to go for now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "41f2df62894bfcd3bf868af916b32b90aa7168dc",
      "tree": "b582399975cd1cf19aa8b6e67623f252b7cada85",
      "parents": [
        "01b6b67edabe864391163dc6405e2cb454f108db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 17 08:54:16 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:15:44 2010 +0200"
      },
      "message": "block: BARRIER request should imply SYNC\n\nA barrier request should by defintion have priority in get_request\nand let the queue be unplugged immediately as it\u0027s blocking all forward\nprogress due to the queue draining.\n\nMost filesystems already get this implicitly by the way how submit_bh\ntreats the buffer_ordered flag, and gfs2 sets it explicitly.  But btrfs\nand XFS are still forgetting to set the flag, as is blkdev_issue_flush\nand some places in DM/MD.\n\nFor XFS on metadata heavy workloads this gives a consistent speedup\nin the 2-3% range.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ed4878e8a4f550fd357ce5144cfd412015f6a111",
      "tree": "897124839ad6b529c42601037dee74d16abe941a",
      "parents": [
        "d7dbf4ffee1c7a17e2e5b5f01efe76fbd1671db6"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu May 20 23:30:11 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 21 16:11:36 2010 +0100"
      },
      "message": "GFS2: Rework reclaiming unlinked dinodes\n\nThe previous patch I wrote for reclaiming unlinked dinodes\nhad some shortcomings and did not prevent all hangs.\nThis version is much cleaner and more logical, and has\npassed very difficult testing.  Sorry for the churn.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "913a71d250803130eac523e7a2b6439e31a0bc83",
      "tree": "5a5c51a5651c49d21cb6f88c63dc063df12acff7",
      "parents": [
        "ad6bb90f3401556469489f237cb08626d88703d2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 06 11:03:29 2010 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 06 11:03:29 2010 +0100"
      },
      "message": "GFS2: Add some useful messages\n\nThe following patch adds a message to indicate when barriers have been\ndisabled due to a block device which doesn\u0027t support them. You could\nalready tell this via the mount options in /proc/mounts, but all the\nother filesystems also log a message at the same time.\n\nAlso, the same mechanisms are used to indicate when the lock\ndemote interface has been used (only ever used for debugging)\nwhich is a request from our support team.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5e687eac1bd31baed110d239ef827d3ba666f311",
      "tree": "71f596b87f60a1d15372fdcfabf3305faa4a57d7",
      "parents": [
        "1a0eae8848cde6e0734360f6456496c995ee1e23"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue May 04 14:29:16 2010 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 05 09:39:18 2010 +0100"
      },
      "message": "GFS2: Various gfs2_logd improvements\n\nThis patch contains various tweaks to how log flushes and active item writeback\nwork. gfs2_logd is now managed by a waitqueue, and gfs2_log_reseve now waits\nfor gfs2_logd to do the log flushing.  Multiple functions were rewritten to\nremove the need to call gfs2_log_lock(). Instead of using one test to see if\ngfs2_logd had work to do, there are now seperate tests to check if there\nare two many buffers in the incore log or if there are two many items on the\nactive items list.\n\nThis patch is a port of a patch Steve Whitehouse wrote about a year ago, with\nsome minor changes.  Since gfs2_ail1_start always submits all the active items,\nit no longer needs to keep track of the first ai submitted, so this has been\nremoved. In gfs2_log_reserve(), the order of the calls to\nprepare_to_wait_exclusive() and wake_up() when firing off the logd thread has\nbeen switched.  If it called wake_up first there was a small window for a race,\nwhere logd could run and return before gfs2_log_reserve was ready to get woken\nup. If gfs2_logd ran, but did not free up enough blocks, gfs2_log_reserve()\nwould be left waiting for gfs2_logd to eventualy run because it timed out.\nFinally, gt_logd_secs, which controls how long to wait before gfs2_logd times\nout, and flushes the log, can now be set on mount with ar_commit.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "2e95e3f668c85276ce699993596d3b52b0fcf4c5",
      "tree": "07b4fee61babe92111e1cafb3a30e99b6bdd4934",
      "parents": [
        "e9edb1d8a345119c9baafa1b240eb1ec06a44662"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Wed Mar 10 18:10:19 2010 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 11 09:50:46 2010 +0000"
      },
      "message": "GFS2: Allow the number of committed revokes to temporarily be negative\n\nGFS2 tracks the number of revokes and unrevokes that are part of committed\ntransactions via sd_log_commited_revoke. It is possible for one process to add\nrevokes during its transaction, while another process unrevokes them during its\ntransaction. If the second process finishes its transaction first,\nsd_log_commited_revoke will be decremented by the number of unrevokes that the\nsecond process did, without first being incremented by the number of revokes\nthe first process did. This is fine, since all started transactions must be\ncompleted before the journal can be flushed.  However, sd_log_commited_revoke\nis an unsigned integer, and log_refund() causes an assertion failure if it\nwould go negative at the end of a transaction.  This patch makes\nsd_log_commited_revoke a signed integer and allows it to go negative.\n__gfs2_log_flush() still checks that it mataches the actual number of revokes.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0ab7d13fcbd7ce1658c563e345990ba453719deb",
      "tree": "5db7f97c264883765da4a9c6324019f0cf746e44",
      "parents": [
        "2c77634965ee28c8b4790ffb5e83dd5ff7ac8988"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 06 16:20:51 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:58:47 2009 +0000"
      },
      "message": "GFS2: Tag all metadata with jid\n\nThere are two spare field in the header common to all GFS2\nmetadata. One is just the right size to fit a journal id\nin it, and this patch updates the journal code so that each\ntime a metadata block is modified, we tag it with the journal\nid of the node which is performing the modification.\n\nThe reason for this is that it should make it much easier to\ndebug issues which arise if we can tell which node was the\nlast to modify a particular metadata block.\n\nSince the field is updated before the block is written into\nthe journal, each journal should only contain metadata which\nis tagged with its own journal id. The one exception to this\nis the journal header block, which might have a different node\u0027s\nid in it, if that journal was recovered by another node in the\ncluster.\n\nThus each journal will contain a record of which nodes recovered\nit, via the journal header.\n\nThe other field in the metadata header could potentially be\nused to hold information about what kind of operation was\nperformed, but for the time being we just zero it on each\ntransaction so that if we use it for that in future, we\u0027ll\nknow that the information (where it exists) is reliable.\n\nI did consider using the other field to hold the journal\nsequence number, however since in GFS2\u0027s journaling we write\nthe modified data into the journal and not the original\ndata, this gives no information as to what action caused the\nmodification, so I think we can probably come up with a better\nuse for those 64 bits in the future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "63997775b795f97ef51f3e56bc3abc9edc04bbb0",
      "tree": "607519910f92b1101fbe0223c301c503001bc0ef",
      "parents": [
        "8ebf975608aaebd7feb33d77f07ba21a6380e086"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 08:49:20 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 08:49:20 2009 +0100"
      },
      "message": "GFS2: Add tracepoints\n\nThis patch adds the ability to trace various aspects of the GFS2\nfilesystem. The trace points are divided into three groups,\nglocks, logging and bmap. These points have been chosen because\nthey allow inspection of the major internal functions of GFS2\nand they are also generic enough that they are unlikely to need\nany major changes as the filesystem evolves.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b7d245de25d1f0bb75a0d04194b647762b30d3db",
      "tree": "7c7f00651751db70432feef2a6a8327f67bc4109",
      "parents": [
        "ca41f7b918294c2a17780e057568413dcbfc6d49"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:43 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "gfs2: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c969f58ca43fc403c75f5d3da4cf1e21de7afaa0",
      "tree": "d38b579882f89c222937530c527224e2a77548b0",
      "parents": [
        "a4d7749be5de4a7261bcbe3c7d96c748792ec455"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 07 14:13:01 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 11 12:36:41 2009 +0100"
      },
      "message": "GFS2: Update the rw flags\n\nAfter Jens recent updates:\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003da1f242524c3c1f5d40f1c9c343427e34d1aadd6e\net al. this is a patch to bring gfs2 uptodate with the core\ncode. Also I\u0027ve managed to squash another call to ll_rw_block()\nalong the way.\n\nThere is still one part of the GFS2 I/O paths which are not correctly\nannotated and that is due to the sharing of the writeback code between\nthe data and metadata address spaces. I would like to change that too,\nbut this patch is still worth doing on its own, I think.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f057f6cdf64175db1151b1f5d110e29904f119a1",
      "tree": "582dbf358e351f64977620c29ebf772d693b1948",
      "parents": [
        "22077f57dec8fcbeb1112b35313961c0902ff038"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 12 10:43:39 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:14 2009 +0000"
      },
      "message": "GFS2: Merge lock_dlm module into GFS2\n\nThis is the big patch that I\u0027ve been working on for some time\nnow. There are many reasons for wanting to make this change\nsuch as:\n o Reducing overhead by eliminating duplicated fields between structures\n o Simplifcation of the code (reduces the code size by a fair bit)\n o The locking interface is now the DLM interface itself as proposed\n   some time ago.\n o Fewer lookups of glocks when processing replies from the DLM\n o Fewer memory allocations/deallocations for each glock\n o Scope to do further optimisations in the future (but this patch is\n   more than big enough for now!)\n\nPlease note that (a) this patch relates to the lock_dlm module and\nnot the DLM itself, that is still a separate module; and (b) that\nwe retain the ability to build GFS2 as a standalone single node\nfilesystem with out requiring the DLM.\n\nThis patch needs a lot of testing, hence my keeping it I restarted\nmy -git tree after the last merge window. That way, this has the maximum\nexposure before its merged. This is (modulo a few minor bug fixes) the\nsame patch that I\u0027ve been posting on and off the the last three months\nand its passed a number of different tests so far.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "254db57f9b12daba841a4d91ddb9a8161e9c74ba",
      "tree": "e5d4f107d8bdf6278738c85a67b54d96d1a900e8",
      "parents": [
        "6d80c39f9155e289fe8037a8b6352931ff916ceb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 26 10:23:22 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 26 10:23:22 2008 +0100"
      },
      "message": "GFS2: Support for I/O barriers\n\nThis patch adds barrier support to GFS2. There is not a lot of change\nreally... we just add the barrier flag when we write journal header\nblocks. If the underlying device refuses to support them, we fall back\nto the previous way of doing things (wait for the I/O and hope) since\nthere is nothing else we can do. There is no user configuration,\nbarriers will always be on unless the device refuses to support them.\nThis seems a reasonable solution to me since this is a correctness\nissue.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2d81afb87972013b43b055b4711dc75fdeeb9ba8",
      "tree": "4fe094c9ec57c6a6fa3e23767facc112f1d9d2df",
      "parents": [
        "048bca223739368aa5b9ce7cfb1d576c32d66cc7"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu May 29 18:27:51 2008 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:31 2008 +0100"
      },
      "message": "[GFS2] trivial sparse lock annotations\n\nAnnotate the \u0026sdp-\u003esd_log_lock.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "62be1f71677c53d5e51223807a06ac9052f49b0f",
      "tree": "954b987466f9616934364b716d7fb93dcba12b46",
      "parents": [
        "16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "12o3l@tiscali.nl",
        "time": "Thu Apr 17 17:25:37 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 18 08:36:09 2008 +0100"
      },
      "message": "[GFS2] fix assertion in log_refund()\n\nsince unsigned, unused \u003e\u003d 0 is always true.\n\nSigned-off-by: Roel Kluin \u003c12o3l@tiscali.nl\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d0109bfa84d6603becac8c2e87b3716f557f2039",
      "tree": "6da41dae00d5784f4e52831d3d40629c1698b00a",
      "parents": [
        "ca390601a8bbb4ab8301a9469d23cdb1cf77e7cb"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:20:10 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:54 2008 +0100"
      },
      "message": "[GFS2] Only do lo_incore_commit once\n\nThis patch is performance related.  When we\u0027re doing a log flush,\nI noticed we were calling buf_lo_incore_commit twice: once for\ndata bufs and once for metadata bufs.  Since this is the same\nfunction and does the same thing in both cases, there should be\nno reason to call it twice.  Since we only need to call it once,\nwe can also make it faster by removing it from the generic \"lops\"\ncode and making it a stand-along static function.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ac39aadd0440ae696e6dacaa8006ce1737b17008",
      "tree": "d2a6784809c6bec674879dc865de4150e8b0fb01",
      "parents": [
        "9656b2c14c6ee0806c90a6be41dec71117fc8f50"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 10 14:49:43 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:18:03 2008 +0000"
      },
      "message": "[GFS2] Fix assert in log code\n\nAlthough the values were all being calculated correctly, there was a\nrace in the assert due to the way it was using atomic variables. This\nchanges the value we assert on so that we get the same effect by testing\na different variable. This prevents the assert triggering when it shouldn\u0027t.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ff91cc9bb41b62bc4ea7d5ced396fabf97539df9",
      "tree": "8e14975bba539c796cddb30853d76f0a0c2d060e",
      "parents": [
        "fa3742fa8545df20e54aa0953a1873cca3a9bd92"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Dec 14 14:04:34 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:15:58 2008 +0000"
      },
      "message": "[GFS2] Fix log block mapper\n\nA missing offset in the calculation.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "da6dd40d59fa9617ed697b90114e197036901632",
      "tree": "49e869021ed1f911bf3cdf185e9c4ce75c67f42a",
      "parents": [
        "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 18:49:21 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:11:46 2008 +0000"
      },
      "message": "[GFS2] Journal extent mapping\n\nThis patch saves a little time when gfs2 writes to the journals by\nkeeping a mapping between logical and physical blocks on disk.\nThat\u0027s better than constantly looking up indirect pointers in\nbuffers, when the journals are several levels of indirection\n(which they typically are).\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172",
      "tree": "68dff93cf4058eb06b162d800f08ff7752cd1a55",
      "parents": [
        "2066b58b0a038d7aedd24133677efb8856cac3a1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Dec 10 14:13:27 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:25 2008 +0000"
      },
      "message": "[GFS2] Remove function gfs2_get_block\n\nThis patch is just a cleanup.  Function gfs2_get_block() just calls\nfunction gfs2_block_map reversing the last two parameters.  By\nreversing the parameters, gfs2_block_map() may be called directly\nand function gfs2_get_block may be eliminated altogether.\nSince this function is done for every block operation,\nthis streamlines the code and makes it a little bit more efficient.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1a2781cfa5ed8eb82bb311d684f268c1822dae69",
      "tree": "d65a551d4e0b8b12365fd150fe70cfd9f14f80e2",
      "parents": [
        "00c134756c5ad570a1ad3d6f93a67fc9c25a67ea"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Fri Nov 16 09:50:40 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:06 2008 +0000"
      },
      "message": "[GFS2] Fix runtime issue with UP kernels\n\nThe issue is indeed UP vs SMP and it is totally random.\n\nspin_is_locked() is a bad assertion because there is no correct answer on UP.\non UP spin_is_locked() has to return either one value or another, always.\n\nThis means that in my setup I am lucky enough to trigger the issue and your you\nare lucky enough not to.\n\nthe patch in attachment removes the bogus calls to BUG_ON and according to David\n(in CC and thanks for the long explanation on the problem) we can rely upon\nthings like lockdep to find problem that might be trying to catch.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e35b921185728850c5db3b5d5b356178f931a157",
      "tree": "1f5586886b1a81fe961425da3ccc9fde8f40b538",
      "parents": [
        "ec69b188837a347769e187997d040e84a683b38a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 09 10:07:21 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:59 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t periodically update the jindex\n\nWe only care about the content of the jindex in two cases,\none is when we mount the fs and the other is when we need\nto recover another journal. In both cases we have to update\nthe jindex anyway, so there is no point in updating it\nperiodically between times, so this removes it to simplify\ngfs2_logd.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ec69b188837a347769e187997d040e84a683b38a",
      "tree": "d16ebc9b83807f99a114efe3a093315f9839b81c",
      "parents": [
        "fd041f0b4045db8646b36d393cbb274db60649f5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 09 10:01:41 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:56 2008 +0000"
      },
      "message": "[GFS2] Move gfs2_logd into log.c\n\nThis means that we can mark gfs2_ail1_empty static and prepares\nthe way for further changes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd041f0b4045db8646b36d393cbb274db60649f5",
      "tree": "dd09e7317eb471d45c685e3269bd3c20dc686f3e",
      "parents": [
        "2bcd610d2fdea608a8fdac32788fc35a32a2327c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 08 14:55:03 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:54 2008 +0000"
      },
      "message": "[GFS2] Use atomic_t for journal free blocks counter\n\nThis patch changes the counter which keeps track of the free\nblocks in the journal to an atomic_t in preparation for the\nfollowing patch which will update the log reservation code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2bcd610d2fdea608a8fdac32788fc35a32a2327c",
      "tree": "5b3753ff18c1da54bb860dbd67211e6abea78ca7",
      "parents": [
        "8cbc4342478311c2a85260a7ca54d96cb7f71f7b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 08 14:25:12 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:52 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t add glocks to the journal\n\nThe only reason for adding glocks to the journal was to keep track\nof which locks required a log flush prior to release. We add a\nflag to the glock to allow this check to be made in a simpler way.\n\nThis reduces the size of a glock (by 12 bytes on i386, 24 on x86_64)\nand means that we can avoid extra work during the journal flush.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b8e7cbb65bcc99630e123422c6829ce3c0fcdf14",
      "tree": "a9f68259b90e9e65ea7f0369f448d580a8944f06",
      "parents": [
        "9ff8ec32e58875022447af619bec6e5aee7c77e4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 09:04:24 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:28 2008 +0000"
      },
      "message": "[GFS2] Add writepages for GFS2 jdata\n\nThis patch resolves a lock ordering issue where we had been getting\na transaction lock in the wrong order with respect to the page lock.\nBy using writepages rather than just writepage, it is then possible\nto start a transaction before locking the page, and thus matching the\nlocking order elsewhere in the code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f91a0d3e24e4b0198be5fae20d45a35c40d1efce",
      "tree": "cda8095f9befd25cbfaf5f63a4c8ca26870d45ca",
      "parents": [
        "3cc3f710ce0effe397b830826a1a081fa81f11c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 16:29:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:16 2008 +0000"
      },
      "message": "[GFS2] Remove useless i_cache from inodes\n\nThe i_cache was designed to keep references to the indirect blocks\nused during block mapping so that they didn\u0027t have to be looked\nup continually. The idea failed because there are too many places\nwhere the i_cache needs to be freed, and this has in the past been\nthe cause of many bugs.\n\nIn addition there was no performance benefit being gained since the\ndisk blocks in question were cached anyway. So this patch removes\nit in order to simplify the code to prepare for other changes which\nwould otherwise have had to add further support for this feature.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5a60c532c9224babc172fafccc9e2fec6937af6f",
      "tree": "1acf07fea71d33fbce3ae0404b05a94087406984",
      "parents": [
        "891ba6d4a5f9e6302bb6542592d73feb4d0d3687"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 26 09:39:31 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:34 2007 +0100"
      },
      "message": "[GFS2] Get superblock a different way\n\nThe mapping may be NULL by the time the I/O has completed, so\nwe now get the superblock by a different route (via the bd and glock)\nto avoid this problem.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Wendy Cheng \u003cwcheng@redhat.com\u003e\n"
    },
    {
      "commit": "16615be18cadf53ee6f8a4f0bdd647f0753421b1",
      "tree": "670c75e931e6d606211f338ee5e8b1d603c96521",
      "parents": [
        "55c0c4ac0be144014651b19e77c9b77f367955de"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 17 10:59:52 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:24 2007 +0100"
      },
      "message": "[GFS2] Clean up journaled data writing\n\nThis patch cleans up the code for writing journaled data into the log.\nIt also removes the need to allocate a small \"tag\" structure for each\nblock written into the log. Instead we just keep count of the outstanding\nI/O so that we can be sure that its all been written at the correct time.\nAnother result of this patch is that a number of ll_rw_block() calls\nhave become submit_bh() calls, closing some races at the same time.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1ad38c437fa33f85ba4b6a85ea8c5478ee72d5bd",
      "tree": "11a5fc7993ba9ae343fc72f03f9a11f312fd6128",
      "parents": [
        "0820ab517e1b100ee3f9584ec27f93309689ebe7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 03 11:01:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:12 2007 +0100"
      },
      "message": "[GFS2] Clean up gfs2_trans_add_revoke()\n\nThe following alters gfs2_trans_add_revoke() to take a struct\ngfs2_bufdata as an argument. This eliminates the memory allocation which\nwas previously required by making use of the already existing struct\ngfs2_bufdata. It makes some sanity checks to ensure that the\ngfs2_bufdata has been removed from all the lists before its recycled as\na revoke structure. This saves one memory allocation and one free per\nrevoke structure.\n\nAlso as a result, and to simplify the locking, since there is no longer\nany blocking code in gfs2_trans_add_revoke() we must hold the log lock\nwhenever this function is called. This reduces the amount of times we\ntake and unlock the log lock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d7b616e252b125f12b007c392f7644053bb6f140",
      "tree": "0794272905a1876ef74144a993f7a76400893813",
      "parents": [
        "9b9107a5a8b190e6cf09bbdf893869c6a9c482cc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Sep 02 10:48:13 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:03 2007 +0100"
      },
      "message": "[GFS2] Clean up ordered write code\n\nThe following patch removes the ordered write processing from\ndatabuf_lo_before_commit() and moves it to log.c. This has the effect of\ngreatly simplyfying databuf_lo_before_commit() and well as potentially\nmaking the ordered write code more efficient.\n\nAs a side effect of this, its now possible to remove ordered buffers\nfrom the ordered buffer list at any time, so we now make use of this in\ninvalidatepage and releasepage to ensure timely release of these\nbuffers.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1e1a3d03e927d39282208aed676e49d25129feea",
      "tree": "731cca9b4df1a6164c809f002290a3d7fd6af1f4",
      "parents": [
        "8497a46e178addb27ad1c981befaa17ca788b5c3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 09:45:26 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:55 2007 +0100"
      },
      "message": "[GFS2] Introduce gfs2_remove_from_ail\n\nThis collects together the operations required to remove a gfs2_bufdata\nfrom the ail lists. Its only called from two places to start with, but\nexpect to see more of this function in future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb3b0e3df5420fdf2c6bbb4417525c6d2ef55bbb",
      "tree": "6eab0fa06b4dc9f9a8d62cedaa6879327966a20c",
      "parents": [
        "2d9a4bbf6d28673f4057682cc02d16bf288b4a35"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 16 16:03:57 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:29 2007 +0100"
      },
      "message": "[GFS2] Clean up invalidatepage/releasepage\n\nThis patch fixes some bugs relating to journaled data files by cleaning\nup the gfs2_invalidatepage() and gfs2_releasepage() functions. We now\nnever block during gfs2_releasepage(), instead we always either release\nor refuse to release depending on the status of the buffers.\n\nThis fixes Red Hat bugzillas #248969 and #252392.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "0f8468c8bef3d04637c924e7bef20ca53018b319",
      "tree": "fc4fa6fedb9fe4e704c8bedc749a0b90a39d0218",
      "parents": [
        "cee23c79d08c57bbbb9923703409af3b17518c58"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jul 25 10:06:22 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:01 2007 +0100"
      },
      "message": "[GFS2] Detach buf data during in-place writeback\n\nThis is patch 5 of 5 for bug #248176\n\nMetadata corruption was occurring because page references weren\u0027t\nbeing removed in all cases.  I previously added a function called\ndetach_bufdata, but I discovered there already WAS a function out\nthere to do the job.  It\u0027s called gfs2_meta_cache_flush.  So I added\na call to that to remove the page references.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "693ddeabbb3e563f192a7ac74ec04168aa92e8d8",
      "tree": "c82fb871747d8dc05c43d1627bb2f777a869a115",
      "parents": [
        "905d2aefa9e06ebb995df96920d273a516fcd3f9"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jul 24 14:07:33 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:53 2007 +0100"
      },
      "message": "[GFS2] Revert part of earlier log.c changes\n\nThis is patch 2 of 5 for bug #248176.\n\nThe list_move code previously concocted in log.c for bug #238162\n(see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d238162#c23)\nnever runs as bh can now never be NULL at this point.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a0a24741cac414aba5918e9939afafa70c37f952",
      "tree": "aee42799f08cff93d5d67d8093d8fe881978ed17",
      "parents": [
        "ac90a2552500996c529d5f0ddc16a9bf60bf670d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 15:43:07 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 15:43:07 2007 +0100"
      },
      "message": "[GFS2] Small fixes to logging code\n\nThis reverts part of an earlier patch which tried to reclaim\ngfs2_bufdata structures too early and resulted in a \"use after free\"\ncase (this bit from me). Also a change to not write out log headers\nunless we really need to (in the case of flushing nothing we don\u0027t need\na header) from Bob.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "2332c4435bb733b5cd4f612ee57532bd8fde4c1c",
      "tree": "dfa006c482a6e9c1a5e693478b424db0f5492fbe",
      "parents": [
        "2840501ac822c5bf712f67b4b02640e16e145a29"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jun 18 14:50:20 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:47 2007 +0100"
      },
      "message": "[GFS2] assertion failure after writing to journaled file, umount\n\nThis patch passes all my nasty tests that were causing the code to\nfail under one circumstance or another.  Here is a complete summary\nof all changes from today\u0027s git tree, in order of appearance:\n\n1. There are now separate variables for metadata buffer accounting.\n2. Variable sd_log_num_hdrs is no longer needed, since the header\n   accounting is taken care of by the reserve/refund sequence.\n3. Fixed a tiny grammatical problem in a comment.\n4. Added a new function \"calc_reserved\" to calculate the reserved\n   log space.  This isn\u0027t entirely necessary, but it has two benefits:\n   First, it simplifies the gfs2_log_refund function greatly.\n   Second, it allows for easier debugging because I could sprinkle the\n   code with calls to this function to make sure the accounting is\n   proper (by adding asserts and printks) at strategic point of the code.\n5. In log_pull_tail there apparently was a kludge to fix up the\n   accounting based on a \"pull\" parameter.  The buffer accounting is\n   now done properly, so the kludge was removed.\n6. File sync operations were making a call to gfs2_log_flush that\n   writes another journal header.  Since that header was unplanned\n   for (reserved) by the reserve/refund sequence, the free space had\n   to be decremented so that when log_pull_tail gets called, the free\n   space is be adjusted properly.  (Did I hear you call that a kludge?\n   well, maybe, but a lot more justifiable than the one I removed).\n7. In the gfs2_log_shutdown code, it optionally syncs the log by\n   specifying the PULL parameter to log_write_header.  I\u0027m not sure\n   this is necessary anymore.  It just seems to me there could be\n   cases where shutdown is called while there are outstanding log\n   buffers.\n8. In the (data)buf_lo_before_commit functions, I changed some offset\n   values from being calculated on the fly to being constants.\tThat\n   simplified some code and we might as well let the compiler do the\n   calculation once rather than redoing those cycles at run time.\n9. This version has my rewritten databuf_lo_add function.\n   This version is much more like its predecessor, buf_lo_add, which\n   makes it easier to understand.  Again, this might not be necessary,\n   but it seems as if this one works as well as the previous one,\n   maybe even better, so I decided to leave it in.\n10. In databuf_lo_before_commit, a previous data corruption problem\n   was caused by going off the end of the buffer.  The proper solution\n   is to have the proper limit in place, rather than stopping earlier.\n   (Thus my previous attempt to fix it is wrong).\n   If you don\u0027t wrap the buffer, you\u0027re stopping too early and that\n   causes more log buffer accounting problems.\n11. In lops.h there are two new (previously mentioned) constants for\n   figuring out the data offset for the journal buffers.\n12. There are also two new functions, buf_limit and databuf_limit to\n   calculate how many entries will fit in the buffer.\n13. In function gfs2_meta_wipe, it needs to distinguish between pinned\n   metadata buffers and journaled data buffers for proper journal buffer\n   accounting.\tIt can\u0027t use the JDATA gfs2_inode flag because it\u0027s\n   sometimes passed the \"real\" inode and sometimes the \"metadata\n   inode\" and the inode flags will be random bits in a metadata\n   gfs2_inode.\tIt needs to base its decision on which was passed in.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8fb68595d508fd30ec90939572484b263600376c",
      "tree": "218a457675c111e2224fb57998d38e45d5786bd1",
      "parents": [
        "fad59c1390045b5adb7c7249ec4e77e0f868aca5"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jun 12 11:24:36 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:40 2007 +0100"
      },
      "message": "[GFS2] Journaled file write/unstuff bug\n\nThis patch is for bugzilla bug 283162, which uncovered a number of\nbugs pertaining to writing to files that have the journaled bit on.\nThese bugs happen most often when writing to the meta_fs because\nthe files are always journaled.  So operations like gfs2_grow were\nparticularly vulnerable, although many of the problems could be\nrecreated with normal files after setting the journaled bit on.\nThe problems fixed are:\n\n-GFS2 wasn\u0027t ever writing unstuffed journaled data blocks to their\n in-place location on disk. Now it does.\n\n-If you unmounted too quickly after doing IO to a journaled file,\n GFS2 was crashing because you would discard a buffer whose bufdata\n was still on the active items list.  GFS2 now deals with this\n gracefully.\n\n-GFS2 was losing track of the bufdata for journaled data blocks,\n and it wasn\u0027t getting freed, causing an error when you tried to\n unmount the module.  GFS2 now frees all the bufdata structures.\n\n-There was a memory corruption occurring because GFS2 wrote\n twice as many log entries for journaled buffers.\n\n-It was occasionally trying to write journal headers in buffers\n that weren\u0027t currently mapped.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ddf4b426aababdae4cb96326d7aeb9d119f42c50",
      "tree": "26aceb619f34e7b58e50a0ad0dc4db4e69664edc",
      "parents": [
        "afb853fb4eec380b492a3c369f837359359c28e8"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Jun 01 14:21:38 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:08 2007 +0100"
      },
      "message": "[GFS2] fix jdata issues\n\nThis is a patch for the first three issues of RHBZ #238162\n\nThe first issue is that when you allocate a new page for a file, it will not\nstart off uptodate. This makes sense, since you haven\u0027t written anything to that\npart of the file yet.  Unfortunately, gfs2_pin() checks to make sure that the\nbuffers are uptodate.  The solution to this is to mark the buffers uptodate in\ngfs2_commit_write(), after they have been zeroed out and have the data written\ninto them.  I\u0027m pretty confident with this fix, although it\u0027s not completely\nobvious that there is no problem with marking the buffers uptodate here.\n\nThe second issue is simply that you can try to pin a data buffer that is already\non the incore log, and thus, already pinned. This patch checks to see if this\nbuffer is already on the log, and exits databuf_lo_add() if it is, just like\nbuf_lo_add() does.\n\nThe third issue is that gfs2_log_flush() doesn\u0027t do it\u0027s block accounting\ncorrectly.  Both metadata and journaled data are logged, but gfs2_log_flush()\nonly compares the number of metadata blocks with the number of blocks to commit\nto the ondisk journal.  This patch also counts the journaled data blocks.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "89918647a445fddfe223b097e29f775dcfa81eab",
      "tree": "627b21140ea3b2655c6818c03d3df55157c2a387",
      "parents": [
        "1990e917651d58a3c5155d0491431c09e29e385b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 01 15:19:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:03 2007 +0100"
      },
      "message": "[GFS2] Make the log reserved blocks depend on block size\n\nThe number of blocks which we reserve in the log at the start of each\ntransaction needs to depends upon the block size since the overhead is\nrelated to the number of \"pointers\" which can be fitted into a single\nblock.\n\nThis relates to Red Hat bz #240435\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aed3255f2267e2d1d95b9cf7f2995ce24e6c873b",
      "tree": "0a3a82c6064c9dc21347ffbc019d1fb1acb6de67",
      "parents": [
        "2896ee37ccc1f9acb244c9b02becb74a43661009"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "ryusuke@osrg.net",
        "time": "Tue Nov 28 02:53:22 2006 +0900"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:37:04 2006 -0500"
      },
      "message": "[GFS2] fs/gfs2/log.c:log_bmap() fix printk format warning\n\nFix a printk format warning in fs/gfs2/log.c:\nfs/gfs2/log.c:322: warning: format \u0027%llu\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027sector_t\u0027\n\nSigned-off-by: Ryusuke Konishi \u003cryusuke@osrg.net\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a25311c8e0b7071b129ca9a9e49e22eeaf620864",
      "tree": "6da042d3f24461b88d968d0ca7b85b37252c5e5a",
      "parents": [
        "b004157ab5b374a498a5874cda68c389219d23e7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 23 11:06:35 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:45 2006 -0500"
      },
      "message": "[GFS2] Move gfs2_meta_syncfs() into log.c\n\nBy moving gfs2_meta_syncfs() into log.c, gfs2_ail1_start()\ncan be made static.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b004157ab5b374a498a5874cda68c389219d23e7",
      "tree": "1e7d7d5c62f3e12cc453e763bbff139b47458be4",
      "parents": [
        "ae619320b22f8e0b2bbe4a3a5ac2f9ccf08d7ec2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 23 10:51:34 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:42 2006 -0500"
      },
      "message": "[GFS2] Fix journal flush problem\n\nThis fixes a bug which resulted in poor performance due to flushing\nthe journal too often. The code path in question was via the inode_go_sync()\nfunction in glops.c. The solution is not to flush the journal immediately\nwhen inodes are ejected from memory, but batch up the work for glockd to\ndeal with later on. This means that glocks may now live on beyond the end of\nthe lifetime of their inodes (but not very much longer in the normal case).\n\nAlso fixed in this patch is a bug (which was hidden by the bug mentioned above) in\ncalculation of the number of free journal blocks.\n\nThe gfs2_logd process has been altered to be more responsive to the journal\nfilling up. We now wake it up when the number of uncommitted journal blocks\nhas reached the threshold level rather than trying to flush directly at the\nend of each transaction. This again means doing fewer, but larger, log\nflushes in general.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "23591256d61354e20f12e98d7a496ad5c23de74c",
      "tree": "3013a6e873a6e0a1d55fbace2fba638a978108c0",
      "parents": [
        "42fb00838a644d03f9a2a5fbbe0b668a5ff5df4d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 13 17:25:45 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 20 09:13:40 2006 -0400"
      },
      "message": "[GFS2] Fix bmap to map extents properly\n\nThis fix means that bmap will map extents of the length requested\nby the VFS rather than guessing at it, or just mapping one block\nat a time. The other callers of gfs2_block_map are audited to ensure\nthey send the correct max extent lengths (i.e. set bh-\u003eb_size correctly).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fe1a698ffef5af546dd4a8cd6a1f2f202491c4ef",
      "tree": "6e4bcc487487e2b751e40ef5e531be08e8630419",
      "parents": [
        "1ee48af22ed6dcddea8cdf93c7f2a268cbcf0d56"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 11 13:34:59 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Oct 12 17:10:55 2006 -0400"
      },
      "message": "[GFS2] Fix bug where lock not held\n\nThe log lock needs to be held when manipulating the counter\nfor the number of free journal blocks.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ddacfaf76dd620af9b73343a975749778321b51c",
      "tree": "1199c2a78b5e2cdd6efc6965dd4cd8caa00ec482",
      "parents": [
        "f92a0b6ff43e8e07bbd5b1d2dd1cff130014f3c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 03 11:10:41 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 03 11:10:41 2006 -0400"
      },
      "message": "[GFS2] Move logging code into log.c (mostly)\n\nThis moves the logging code from meta_io.c into log.c and glops.c. As a\nresult the routines can now be static and all the logging code is together\nin log.c, leaving meta_io.c with just metadata i/o code in it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "74669416f747363c14dba2ee6137540ae5a6834f",
      "tree": "280aaacf7ec5e68b0d301b093a7a2358795e339c",
      "parents": [
        "7d308590ae60d1f038a54a94e78a385c5c163452"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 11:17:38 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 11:17:38 2006 -0400"
      },
      "message": "[GFS2] Use list_for_each_entry_safe_reverse in gfs2_ail1_start()\n\nThis is an attempt to fix Red Hat bz 204364. I don\u0027t hit it all\nthe time, but with these changes, running postmark which used to\ntrigger it on a regular basis no longer appears to. So I\u0027m not\nsaying that its 100% certain that its fixed, but it does look\npromising at the moment.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7d308590ae60d1f038a54a94e78a385c5c163452",
      "tree": "f672724840a07022ff6deb8022082af35dbad44c",
      "parents": [
        "f3b30912e0eab0e4160c7649a5f2b10be68027b9"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Tue Sep 19 07:56:29 2006 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 08:45:18 2006 -0400"
      },
      "message": "[GFS2] Export lm_interface to kernel headers\n\n\nlm_interface.h has a few out of the tree clients such as GFS1\nand userland tools.\n\nRight now, these clients keeps a copy of the file in their build tree\nthat can go out of sync.\n\nMove lm_interface.h to include/linux, export it to userland and\nclean up fs/gfs2 to use the new location.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "7a6bbacbb8dec6fbd1242c959250388f907d429e",
      "tree": "8e314f0b3fd6e54154562c0a9b20173d539470a2",
      "parents": [
        "65952fb4e91c159d253bd28ceaf028a86dbb0b02"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "message": "[GFS2] Map multiple blocks at once where possible\n\nThis is a tidy up of the GFS2 bmap code. The main change is that the\nbh is passed to gfs2_block_map allowing the flags to be set directly\nrather than having to repeat that code several times in ops_address.c.\n\nAt the same time, the extent mapping code from gfs2_extent_map has\nbeen moved into gfs2_block_map. This allows all calls to gfs2_block_map\nto map extents in the case that no allocation is taking place. As a\nresult reads and non-allocating writes should be faster. A quick test\nwith postmark appears to support this.\n\nThere is a limit on the number of blocks mapped in a single bmap\ncall in that it will only ever map blocks which are pointed to\nfrom a single pointer block. So in other words, it will never try\nto do additional i/o in order to satisfy read-ahead. The maximum\nnumber of blocks is thus somewhat less than 512 (the GFS2 4k block\nsize minus the header divided by sizeof(u64)). I\u0027ve further limited\nthe mapping of \"normal\" blocks to 32 blocks (to avoid extra work)\nsince readpages() will currently read a maximum of 32 blocks ahead (128k).\n\nSome further work will probably be needed to set a suitable value\nfor DIO as well, but for now thats left at the maximum 512 (see\nops_address.c:gfs2_get_block_direct).\n\nThere is probably a lot more that can be done to improve bmap for GFS2,\nbut this is a good first step.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "faa31ce85f626dff30ba865684bd1f0ad97a9ca0",
      "tree": "24e2573df5da036c832972fecc227e2628941aac",
      "parents": [
        "16feb9fec0e1f74339bd6992130ceedb3aa9567e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 13 11:13:27 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 13 11:13:27 2006 -0400"
      },
      "message": "[GFS2] Tidy up log.c\n\nBased upon previous feedback from lkml and also removing some\ncommented out debugging which is no longer needed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c53921248c79197befa7caa4c17b1af5c077a2c2",
      "tree": "e446672af150784bee2ac92ccc991a62ed699cca",
      "parents": [
        "7b62536141927212158ab84ce2afda9319ae6f2d"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Tue Sep 05 14:30:40 2006 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 09:42:56 2006 -0400"
      },
      "message": "[GFS2] More style changes\n\nRemove redundant brackets\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "a67cdbd4579c387c021a17c7447da8b88f2a94f4",
      "tree": "9c2a7825b7b43cd00fff8388f69c96fd6683a405",
      "parents": [
        "cca195c5c09b81065018dee39f4013b95bf47502"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 14:41:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 14:41:30 2006 -0400"
      },
      "message": "[GFS2] Style changes in logging code\n\nAs per Jan Engelhardt\u0027s comments, removed some unused code and\nremoved some brackets which were not required.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd915493fce912f1bd838ee1250737ecf33b8fae",
      "tree": "e14ec6643de91f473edb26a89905e710596fe6bc",
      "parents": [
        "a91ea69ffd3f8a0b7139bfd44042ab384461e631"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "message": "[GFS2] Change all types to uX style\n\nThis makes all fixed size types have consistent names.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9fc2aa091ab8fa46e60d4c9d06a89305c441652",
      "tree": "8cdf5fcc4adba8cd53c51f824b5d8107ce0f4bba",
      "parents": [
        "c6e6f0ba8fc1dea99c7bd020916f24d533b62697"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright, tidy up incore.h\n\nAs per comments from Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e this\nupdates the copyright message to say \"version\" in full rather than\n\"v.2\". Also incore.h has been updated to remove forward structure\ndeclarations which are not required.\n\nThe gfs2_quota_lvb structure has now had endianess annotations added\nto it. Also quota.c has been updated so that we now store the\nlvb data locally in endian independant format to avoid needing\na structure in host endianess too. As a result the endianess\nconversions are done as required at various points and thus the\nconversion routines in lvb.[ch] are no longer required. I\u0027ve\nmoved the one remaining constant in lvb.h thats used into lm.h\nand removed the unused lvb.[ch].\n\nI have not changed the HIF_ constants. That is left to a later patch\nwhich I hope will unify the gh_flags and gh_iflags fields of the\nstruct gfs2_holder.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5dc39fe621ead2fa2a0439a686be4df185861eae",
      "tree": "3ca539e18bae3f45f0e807165998440db0f7a033",
      "parents": [
        "a2242db0906445491d9ac50bfa756b0de0a25d45"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Aug 24 14:47:17 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 25 09:57:41 2006 -0400"
      },
      "message": "[GFS2] Fix journal off-by-one error\n\nlog_refund() incorrectly assumed that if a transaction had been touched, it\nalways committed buffers to the incore log. Thus, when you got around to\nflushing the log, you would need one more block than you committed, to account\nfor the header. So it automatically set reserved to 1, which had the effect of\nmaking sdp-\u003esd_log_blks_reserved one greater when you got to gfs2_log_flush().\nHowever, if you don\u0027t actually commit anything to the incore log between\nflushes, you don\u0027t need the header, because you aren\u0027t writing anything out.\nWith this patch, log_refund() only increments reservered to account for the\nheader if something has been committed since the last flush.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "59a1cc6bdabf5ed148b48808ad1a418d87f5e6bf",
      "tree": "6463071a09201040267702e895d63359e62c393d",
      "parents": [
        "899bb264507cfed83922bf14cd66a073494601ba"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 04 15:41:22 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 04 15:41:22 2006 -0400"
      },
      "message": "[GFS2] Fix lock ordering bug in page fault path\n\nMmapped files were able to trigger a lock ordering bug. Private\nmaps do not need to take the glock so early on. Shared maps do\nunfortunately, however we can get around that by adding a flag\ninto the flags for the struct gfs2_file. This only works because\nwe are taking an exclusive lock at this point, so we know that\nnobody else can be racing with us.\n\nFixes Red Hat bugzilla: #201196\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e0f2bf780a970f7aae9263db2e14149132671cf2",
      "tree": "d763d095028efe598d3acf99389af9891d37bf1f",
      "parents": [
        "634ee0b9f458f3530b9c0ea7e6951dd03db7d678"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 17 09:36:28 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 17 09:36:28 2006 -0400"
      },
      "message": "[GFS2] Fix endian conversion bug\n\nFix an endian coversion bug in log.c spotted by Kevin Anderson.\n\nCc: Kevin Anderson \u003ckanderso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd4de2d41a9de2d949b0850d637aa84616f87ab8",
      "tree": "98bcb0cf0c6768f9a882e797fea14ea8de3bb344",
      "parents": [
        "3864caea2ed2b43bfc92e5cfbe001abe3f002a06"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 05 13:14:59 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 05 13:14:59 2006 -0400"
      },
      "message": "[GFS2] Add cast for printk\n\nCast a uint64_t to unsigned long long for a printk.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "feaa7bba026c181ce071d5a4884f7f9dd26207a1",
      "tree": "c858deb225917265cb07820730e9764674d133e8",
      "parents": [
        "22da645fd6675b7abc55cf937ddf6132f343e5b9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "message": "[GFS2] Fix unlinked file handling\n\nThis patch fixes the way we have been dealing with unlinked,\nbut still open files. It removes all limits (other than memory\nfor inodes, as per every other filesystem) on numbers of these\nwhich we can support on GFS2. It also means that (like other\nfs) its the responsibility of the last process to close the file\nto deallocate the storage, rather than the person who did the\nunlinking. Note that with GFS2, those two events might take place\non different nodes.\n\nAlso there are a number of other changes:\n\n o We use the Linux inode subsystem as it was intended to be\nused, wrt allocating GFS2 inodes\n o The Linux inode cache is now the point which we use for\nlocal enforcement of only holding one copy of the inode in\ncore at once (previous to this we used the glock layer).\n o We no longer use the unlinked \"special\" file. We just ignore it\ncompletely. This makes unlinking more efficient.\n o We now use the 4th block allocation state. The previously unused\nstate is used to track unlinked but still open inodes.\n o gfs2_inoded is no longer needed\n o Several fields are now no longer needed (and removed) from the in\ncore struct gfs2_inode\n o Several fields are no longer needed (and removed) from the in core\nsuperblock\n\nThere are a number of future possible optimisations and clean ups\nwhich have been made possible by this patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a8a9a1034813aa99f5ae3150f652d490c5ff10d",
      "tree": "427d4c1499b5c88dbf43c6e490d83cee350083b2",
      "parents": [
        "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright date to 2006\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f",
      "tree": "c3960853310112779e2ce583a8c8b524777cb70d",
      "parents": [
        "1b50259bc33f2adfcb4c5fba4b740bf80789df22"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 14:54:58 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 14:54:58 2006 -0400"
      },
      "message": "[GFS2] Remove semaphore.h from C files\n\nWe no longer use semaphores, everything has been converted to\nmutex or rwsem, so we don\u0027t need to include this header any more.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd88de569b802c4a04aaa6ee74667775f4aed8c6",
      "tree": "1766c45303798bf289059afc8f117cf8bc784086",
      "parents": [
        "5bb76af1e089ac186c15c6aa792340d22b63d4b4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 05 16:59:11 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 05 16:59:11 2006 -0400"
      },
      "message": "[GFS2] Readpages support\n\nThis adds readpages support (and also corrects a small bug in\nthe readpage error path at the same time). Hopefully this will\nimprove performance by allowing GFS to submit larger lumps of\nI/O at a time.\n\nIn order to simplify the setting of BH_Boundary, it currently gets\nset when we hit the end of a indirect pointer block. There is\nalways a boundary at this point with the current allocation code.\nIt doesn\u0027t get all the boundaries right though, so there is still\nroom for improvement in this.\n\nSee comments in fs/gfs2/ops_address.c for further information about\nreadpages with GFS2.\n\nSigned-off-by: Steven Whitehouse\n"
    },
    {
      "commit": "a74604bee27da7c9506114e5710f91f388e98296",
      "tree": "bfd1c8b14c03022894396c788bf8b0377c5afe49",
      "parents": [
        "a748422ee45725e04e1d3792fa19dfa90ddfd116"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 21 15:10:46 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 21 15:10:46 2006 -0400"
      },
      "message": "[GFS2] sem -\u003e mutex conversion in locking.c\n\nConvert a semaphore to a mutex in locking.c and also tidy\nup one or two loose ends.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "190562bd84a484bf6590425aa2bb4d6d611c112b",
      "tree": "dd99bcd847f8d2376f7836ea9d861a31d1021c71",
      "parents": [
        "fe1bdedc6c16adedc6fd3636185ea91596b1d6eb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 20 16:57:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 20 16:57:23 2006 -0400"
      },
      "message": "[GFS2] Fix a bug: scheduling under a spinlock\n\nAt some stage, a mutex was added to gfs2_glock_put() without\nchecking all its call sites. Two of them were called from\nunder a spinlock causing random delays at various points and\ncrashes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f4154ea039bbf45c52840b30c68143a2dc28d4b4",
      "tree": "fa00645dd60a9140e885be96a4aa9797cf4cfeac",
      "parents": [
        "ed3865079b573ef55dc13ab0bfb242ed5ebab4c1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 11 14:49:06 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 11 14:49:06 2006 -0400"
      },
      "message": "[GFS2] Update journal accounting code.\n\nA small update to the journaling code to change the way that\nthe \"extra\" blocks are accounted for in the journal. These are\nused at a rate of one per 503 metadata blocks or one per 251\njournaled data blocks (or just one if the total number of journaled\nblocks in the transaction is smaller). Since we are using them at\ntwo different rates the old method of accounting for them no longer\nworks and we count them up as required.\n\nSince the \"per transaction\" accounting can\u0027t handle this (there is no\nfixed number of header blocks per transaction) we have to account for\nit in the general journal code. We now require that each transaction\nreserves more blocks than it actually needs to take account of the\npossible extra blocks.\n\nAlso a final fix to dir.c to ensure that all ref counts are handled\ncorrectly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ed3865079b573ef55dc13ab0bfb242ed5ebab4c1",
      "tree": "805051b854553a04cc6bb5082a74e3030216372b",
      "parents": [
        "b09e593d799560f1a0782c20ac5900058390a26f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 16:28:07 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 16:28:07 2006 -0400"
      },
      "message": "[GFS2] Finally get ref counting correct\n\nThe last patch missed some other instances of incorrect ref counting,\nthis fixes all of those too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b09e593d799560f1a0782c20ac5900058390a26f",
      "tree": "20f04bd2c8ba9c09ac80a7bb1400d341c4fd7e21",
      "parents": [
        "55eccc6d00cea224bf634d44e9871cfe83200ff2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 11:17:32 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 11:17:32 2006 -0400"
      },
      "message": "[GFS2] Fix a ref count bug and other clean ups\n\nThis fixes a ref count bug that sometimes showed up a umount time\n(causing it to hang) but it otherwise mostly harmless. At the same\ntime there are some clean ups including making the log operations\nstructures const, moving a memory allocation so that its not done\nin the fast path of checking to see if there is an outstanding\ntransaction related to a particular glock.\n\nRemoves the sd_log_wrap varaible which was updated, but never actually\nused anywhere. Updates the gfs2 ioctl() to run without the kernel lock\n(which it never needed anyway). Removes the \"invalidate inodes\" loop\nfrom GFS2\u0027s put_super routine. This is done in kill super anyway so\nwe don\u0027t need to do it here. The loop was also bogus in that if there\nare any inodes \"stuck\" at this point its a bug and we need to know\nabout it rather than hide it by hanging forever.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e3167ded1f1b16424bc14d5673cdc5414f179970",
      "tree": "1b995e6387b230b1f447aabe30b689d091ee0b52",
      "parents": [
        "cd45697f0ddbb58f3f83c29fe164713ee7765e21"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 30 15:46:23 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 30 15:46:23 2006 -0500"
      },
      "message": "[GFS] Fix bug in endian conversion for metadata header\n\nIn some cases 16 bit functions were being used rather than 32 bit\nfunctions.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "484adff8a06cb5d952832f5487ae863f54c0fb69",
      "tree": "e43a9387a3a313cfdb4a34298d532dc7a1b7391c",
      "parents": [
        "7aabffcab47a0f881c7640f5c108e8d3f2e35ebf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 29 09:12:12 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 29 09:12:12 2006 -0500"
      },
      "message": "[GFS2] Update locking in log.c\n\nReplace the lock_for_trans()/lock_for_flush() functions with an rwsem.\nIn fact the sd_log_flush_lock becomes an rwsem (the write part of it)\nand is extended slightly to cover everything that the lock_for_flush()\nused to cover. The read part of the lock is instead of lock_for_trans().\n\nThis corrects the races in the original code and reduces the code size.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "71b86f562b5eb6f94ea00bba060caa64d0137969",
      "tree": "63d982e09a9cb934fe656afe115031c0a9dc5e4a",
      "parents": [
        "94aabbd99370f738da4f6cb4ea0b94cd9024002f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 28 14:14:04 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 28 14:14:04 2006 -0500"
      },
      "message": "[GFS2] Further updates to dir and logging code\n\nThis reduces the size of the directory code by about 3k and gets\nreaddir() to use the functions which were introduced in the previous\ndirectory code update.\n\nTwo memory allocations are merged into one. Eliminates zeroing of some\nbuffers which were never used before they were initialised by\nother data.\n\nThere is still scope for further improvement in the directory code.\n\nOn the logging side, a hand created mutex has been replaced by a\nstandard Linux mutex in the log allocation code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b4dc72911d149d7d6b7ffb512bd68906f1cbd33a",
      "tree": "2b00b45b2c63eac9b3aa3b353f1ba44b9a14582d",
      "parents": [
        "c9fd43078f5007c6ca6b3a9cd04c51a8f0e44a20"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 01 17:41:58 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 01 17:41:58 2006 -0500"
      },
      "message": "[GFS2] Fix some bugs\n\nFix a bug I introduced earlier with a kfree() and usage of\na structure in the wrong order. Also try and get the counts\nof the journaled data buffers \"more correct\". Still some work\nto do in this area though.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5c676f6d359b0404d53f542f02e1359583cb2895",
      "tree": "8741011990ec0a3d0d41fee9f0d7abf6a16834cc",
      "parents": [
        "f3b270a47882b958e9e3c5bd86894e3a7072899a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 17:23:27 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 17:23:27 2006 -0500"
      },
      "message": "[GFS2] Macros removal in gfs2.h\n\nAs suggested by Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e.\n\nThe DIV_RU macro is renamed DIV_ROUND_UP and and moved to kernel.h\nThe other macros are gone from gfs2.h as (although not requested\nby Pekka Enberg) are a number of included header file which are now\nincluded individually. The inode number comparison function is\nnow an inline function.\n\nThe DT2IF and IF2DT may be addressed in a future patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "568f4c9659a2225b0d29cf86feecbcf25c9045c8",
      "tree": "8ec0fee12313f88a195e0b90924f6b7633ba29f1",
      "parents": [
        "3a8fe9be6c9794e55ac2253eab91d42b28a9dab6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "message": "[GFS2] 80 Column audit of GFS2\n\nRequested by:\nPrarit Bhargava \u003cprarit@redhat.com\u003e\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6a6b3d018f4781f108d170f2181281a3c5589dc8",
      "tree": "471b6b8392fbcad36e62161c8f97893f97f0699e",
      "parents": [
        "8d3b35a4af87965d1873872b21e504558f62116a"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Feb 23 10:11:47 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 23 10:11:47 2006 +0000"
      },
      "message": "[GFS2] Patch to remove stats gathering from GFS2\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f55ab26a8f92a23988c3e6da28dae4741933a4e2",
      "tree": "b6f9e89ce1b2ccde8d81314aeea06f6a02f882f7",
      "parents": [
        "5c4e9e036678fae65c9288e1c00a6f33cd447283"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 21 12:51:39 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 21 12:51:39 2006 +0000"
      },
      "message": "[GFS2] Use mutices rather than semaphores\n\nAs well as a number of minor bug fixes, this patch changes GFS\nto use mutices rather than semaphores. This results in better\ninformation in case there are any locking problems.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ],
  "next": "7359a19cc758946aba0e45233b8641256b194884"
}
