)]}'
{
  "commit": "5bc833feaa8b2236265764e7e81f44937be46eda",
  "tree": "9aa34ee4e898d268fade3e6e2b9b5678f49caa54",
  "parents": [
    "269b26191650be46ce6c91dec24cf20f59650529"
  ],
  "author": {
    "name": "Josef Bacik",
    "email": "jbacik@redhat.com",
    "time": "Mon Apr 28 02:16:10 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Mon Apr 28 08:58:44 2008 -0700"
  },
  "message": "jbd: fix the way the b_modified flag is cleared\n\nCurrently at the start of a journal commit we loop through all of the buffers\non the committing transaction and clear the b_modified flag (the flag that is\nset when a transaction modifies the buffer) under the j_list_lock.\n\nThe problem is that everywhere else this flag is modified only under the jbd\nlock buffer flag, so it will race with a running transaction who could\npotentially set it, and have it unset by the committing transaction.\n\nThis is also a big waste, you can have several thousands of buffers that you\nare clearing the modified flag on when you may not need to.  This patch\nremoves this code and instead clears the b_modified flag upon entering\ndo_get_write_access/journal_get_create_access, so if that transaction does\nindeed use the buffer then it will be accounted for properly, and if it does\nnot then we know we didn\u0027t use it.\n\nThat will be important for the next patch in this series.  Tested thoroughly\nby myself using postmark/iozone/bonnie++.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nAcked-by: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a38c7186c5704e438236994baa18014b4bacb801",
      "old_mode": 33188,
      "old_path": "fs/jbd/commit.c",
      "new_id": "d2f652e6e22ee5be9b0e37b4686c142b7da3863e",
      "new_mode": 33188,
      "new_path": "fs/jbd/commit.c"
    },
    {
      "type": "modify",
      "old_id": "2c9e8f5d13aae3505fce91eb78fe69396efb9aea",
      "old_mode": 33188,
      "old_path": "fs/jbd/transaction.c",
      "new_id": "2e9670e2237e96650ba3d41f0e817b870e5bbb80",
      "new_mode": 33188,
      "new_path": "fs/jbd/transaction.c"
    }
  ]
}
