)]}'
{
  "log": [
    {
      "commit": "e06c8227fd94ec181849ba206bf032be31c4295c",
      "tree": "67261cd94aa86dc6112d7de74304c2a1af5b64fb",
      "parents": [
        "754938c142ae0c28360426c43f965ddc5164b21e"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Sep 11 15:35:47 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:30 2009 -0800"
      },
      "message": "jbd2: Add buffer triggers\n\nFilesystems often to do compute intensive operation on some\nmetadata.  If this operation is repeated many times, it can be very\nexpensive.  It would be much nicer if the operation could be performed\nonce before a buffer goes to disk.\n\nThis adds triggers to jbd2 buffer heads.  Just before writing a metadata\nbuffer to the journal, jbd2 will optionally call a commit trigger associated\nwith the buffer.  If the journal is aborted, an abort trigger will be\ncalled on any dirty buffers as they are dropped from pending\ntransactions.\n\nocfs2 will use this feature.\n\nInitially I tried to come up with a more generic trigger that could be\nused for non-buffer-related events like transaction completion.  It\ndoesn\u0027t tie nicely, because the information a buffer trigger needs\n(specific to a journal_head) isn\u0027t the same as what a transaction\ntrigger needs (specific to a tranaction_t or perhaps journal_t).  So I\nimplemented a buffer set, with the understanding that\njournal/transaction wide triggers should be implemented separately.\n\nThere is only one trigger set allowed per buffer.  I can\u0027t think of any\nreason to attach more than one set.  Contrast this with a journal or\ntransaction in which multiple places may want to watch the entire\ntransaction separately.\n\nThe trigger sets are considered static allocation from the jbd2\nperspective.  ocfs2 will just have one trigger set per block type,\nsetting the same set on every bh of the same type.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e1f8e87449147ffe5ea3de64a46af7de450ce279",
      "tree": "304e90a6747f5a7586a67305b7225ed4b4dbb53a",
      "parents": [
        "8033fe65a6d6c0e47ba9e3cb2e4e6902f9dfb8dd"
      ],
      "author": {
        "name": "Francois Cami",
        "email": "francois.cami@free.fr",
        "time": "Wed Oct 15 22:01:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:32 2008 -0700"
      },
      "message": "Remove Andrew Morton\u0027s old email accounts\n\nPeople can use the real name an an index into MAINTAINERS to find the\ncurrent email address.\n\nSigned-off-by: Francois Cami \u003cfrancois.cami@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
