)]}'
{
  "commit": "a3f74ffb6d1448d9a8f482e593b80ec15f1695d4",
  "tree": "e7a9ea7ba4032340e771605000002da4349719cb",
  "parents": [
    "4ae29b4321b99b711bcfde5527c4fbf249eac60f"
  ],
  "author": {
    "name": "David Chinner",
    "email": "dgc@sgi.com",
    "time": "Thu Mar 06 13:43:42 2008 +1100"
  },
  "committer": {
    "name": "Lachlan McIlroy",
    "email": "lachlan@redback.melbourne.sgi.com",
    "time": "Fri Apr 18 11:37:32 2008 +1000"
  },
  "message": "[XFS] Don\u0027t block pdflush when writing back inodes\n\nWhen pdflush is writing back inodes, it can get stuck on inode cluster\nbuffers that are currently under I/O. This occurs when we write data to\nmultiple inodes in the same inode cluster at the same time.\n\nEffectively, delayed allocation marks the inode dirty during the data\nwriteback. Hence if the inode cluster was flushed during the writeback of\nthe first inode, the writeback of the second inode will block waiting for\nthe inode cluster write to complete before writing it again for the newly\ndirtied inode.\n\nBasically, we want to avoid this from happening so we don\u0027t block pdflush\nand slow down all of writeback. Hence we introduce a non-blocking async\ninode flush flag that pdflush uses. If this flag is set, we use\nnon-blocking operations (e.g. try locks) whereever we can to avoid\nblocking or extra I/O being issued.\n\nSGI-PV: 970925\nSGI-Modid: xfs-linux-melb:xfs-kern:30501a\n\nSigned-off-by: David Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8831d95187904f0ecf4a1aa1ac5b77cc767aec77",
      "old_mode": 33188,
      "old_path": "fs/xfs/linux-2.6/xfs_super.c",
      "new_id": "cb9ce90d1deb7010d109c590999b1229b5139dcb",
      "new_mode": 33188,
      "new_path": "fs/xfs/linux-2.6/xfs_super.c"
    },
    {
      "type": "modify",
      "old_id": "b5ea418693b1b4f1d76ef2b2dd8e6bf149733150",
      "old_mode": 33188,
      "old_path": "fs/xfs/linux-2.6/xfs_vnode.h",
      "new_id": "f200e02440827d8e4beb925b4dd18ee81560abb9",
      "new_mode": 33188,
      "new_path": "fs/xfs/linux-2.6/xfs_vnode.h"
    },
    {
      "type": "modify",
      "old_id": "6f156faf9d46e3801e39b23bcab9d4b25e04dab2",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_inode.c",
      "new_id": "3c3e9e3c1da81613e0b222650baab4797ddf10d9",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_inode.c"
    },
    {
      "type": "modify",
      "old_id": "eaa01895ff93ed42e59efa3ca0d238ba9511255f",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_inode.h",
      "new_id": "c3bfffca9214e0fea9c86f9cafbe760fcccff399",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_inode.h"
    },
    {
      "type": "modify",
      "old_id": "f615e04364f47238c09f22d67a7fa74fe3548ba0",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_itable.c",
      "new_id": "45d8776408ef2a4f0829c25caf9130adf6e57169",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_itable.c"
    },
    {
      "type": "modify",
      "old_id": "b2b70eba282cbaa65e9c43354a0696364d4b8e13",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_log_recover.c",
      "new_id": "cd24711ae276a1d4edf0b6c4b955302e7a496288",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_log_recover.c"
    },
    {
      "type": "modify",
      "old_id": "60b6b898022bcb1be98f96f2a21615e1bff5e131",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_trans_buf.c",
      "new_id": "4e5c010f50406940a5b4758e300530a6922bae63",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_trans_buf.c"
    },
    {
      "type": "modify",
      "old_id": "40b95e3a88ba143c0972231eb4c49f0d842c6b56",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_vnodeops.c",
      "new_id": "14140f6225ba513cc0c68a38def2ea37a47aaec5",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_vnodeops.c"
    }
  ]
}
