)]}'
{
  "commit": "7c71ee78031c248dca13fc94dea9a4cc217db6cf",
  "tree": "16951eb9c67010960c328b1626efa2a4ab668c39",
  "parents": [
    "6da54179b3f1bb6a302fd5f3b38fae32ee463ed1"
  ],
  "author": {
    "name": "Eric Sandeen",
    "email": "sandeen@sandeen.net",
    "time": "Tue Jan 21 16:46:23 2014 -0600"
  },
  "committer": {
    "name": "Ben Myers",
    "email": "bpm@sgi.com",
    "time": "Fri Jan 24 11:55:42 2014 -0600"
  },
  "message": "xfs: allow logical-sector sized O_DIRECT\n\nSome time ago, mkfs.xfs started picking the storage physical\nsector size as the default filesystem \"sector size\" in order\nto avoid RMW costs incurred by doing IOs at logical sector\nsize alignments.\n\nHowever, this means that for a filesystem made with i.e.\na 4k sector size on an \"advanced format\" 4k/512 disk,\n512-byte direct IOs are no longer allowed.  This means\nthat XFS has essentially turned this AF drive into a hard\n4K device, from the filesystem on up.\n\nXFS\u0027s mkfs-specified \"sector size\" is really just controlling\nthe minimum size \u0026 alignment of filesystem metadata.\n\nThere is no real need to tightly couple XFS\u0027s minimal\nmetadata size to the minimum allowed direct IO size;\nXFS can continue doing metadata in optimal sizes, but\nstill allow smaller DIOs for apps which issue them,\nfor whatever reason.\n\nThis patch adds a new field to the xfs_buftarg, so that\nwe now track 2 sizes:\n\n 1) The metadata sector size, which is the minimum unit and\n    alignment of IO which will be performed by metadata operations.\n 2) The device logical sector size\n\nThe first is used internally by the file system for metadata\nalignment and IOs.\nThe second is used for the minimum allowed direct IO alignment.\n\nThis has passed xfstests on filesystems made with 4k sectors,\nincluding when run under the patch I sent to ignore\nXFS_IOC_DIOINFO, and issue 512 DIOs anyway.  I also directly\ntested end of block behavior on preallocated, sparse, and\nexisting files when we do a 512 IO into a 4k file on a \n4k-sector filesystem, to be sure there were no unexpected\nbehaviors.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a526f8d2dc6f8ff6497cf96fb57390a682634c71",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_buf.c",
      "new_id": "51757113a822abc57334bbc25f0251671fdd3266",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_buf.c"
    },
    {
      "type": "modify",
      "old_id": "d5d88dda4d31a3de7e40dbe66a385049f44d3ff0",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_buf.h",
      "new_id": "995339534db6a4b65c6ec332055734f7415ca621",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_buf.h"
    },
    {
      "type": "modify",
      "old_id": "d01745f748ac6da54bbe138096dc6da1752231b6",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_file.c",
      "new_id": "2e7989e3a2d67374d17e5086ec3b15bfbcb32e2d",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_file.c"
    },
    {
      "type": "modify",
      "old_id": "3dc60ed9572a8d360f38625640995ad6bc773bdc",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_ioctl.c",
      "new_id": "bcfe61202115510b22509ad49aadc16bcbbb4368",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_ioctl.c"
    }
  ]
}
