)]}'
{
  "commit": "033da48fda9d56e28b3fe3ef87ef6fd43290f554",
  "tree": "0883ff1fd99a9d9bff00c2694e6b66ae12a39bba",
  "parents": [
    "80641dc66a2d6dfb22af4413227a92b8ab84c7bb"
  ],
  "author": {
    "name": "Christoph Hellwig",
    "email": "hch@infradead.org",
    "time": "Mon Oct 19 04:05:26 2009 +0000"
  },
  "committer": {
    "name": "Alex Elder",
    "email": "aelder@sgi.com",
    "time": "Fri Dec 11 15:11:20 2009 -0600"
  },
  "message": "xfs: reset the i_iolock lock class in the reclaim path\n\nThe iolock is used for protecting reads, writes and block truncates\nagainst each other.  We have two classes of callers, the first one is\ninduced by a file operation and requires a reference to the inode be\nheld and not dropped after the operation is done:\n\n - xfs_vm_vmap, xfs_vn_fallocate, xfs_read, xfs_write, xfs_splice_read,\n   xfs_splice_write and xfs_setattr are all implementations of VFS\n   methods that require a live inode\n - xfs_getbmap and xfs_swap_extents are ioctl subcommand for which the\n   same is true\n - xfs_truncate_file is only called on quota inodes just returned from\n   xfs_iget\n - xfs_sync_inode_data does the lock just after an igrab()\n - xfs_filestream_associate and xfs_filestream_new_ag take the iolock\n   on the parent inode of an inode which by VFS rules must be referenced\n\nAnd we have various calls to truncate blocks past EOF or the whole\nfile when dropping the last reference to an inode.  Unfortunately\nlockdep complains when we do memory allocations that can recurse into\nthe filesystem in the first class because the second class happens to\ntake the same lock.  To avoid this re-init the iolock in the beginning\nof xfs_fs_clear_inode to get a new lock class.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a82a93db67c2913e112393e928eac8177ecd02d6",
      "old_mode": 33188,
      "old_path": "fs/xfs/linux-2.6/xfs_super.c",
      "new_id": "25b6903a3bceb58d8a736ab8bf9b5c710528bfa4",
      "new_mode": 33188,
      "new_path": "fs/xfs/linux-2.6/xfs_super.c"
    },
    {
      "type": "modify",
      "old_id": "80e526489be5d7ee3dc415ec592fe2807a879a01",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_iget.c",
      "new_id": "cc72c561ff52d683263f292ca8d2b6237c007976",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_iget.c"
    }
  ]
}
