)]}'
{
  "commit": "3a23dfe9d1689b8f7627e3f6fa8f8bd4a79bd704",
  "tree": "0b3f7b3090b566a984274eee627caea0616a2469",
  "parents": [
    "4b37574edf921d1a6e2759f7373b93530168995b"
  ],
  "author": {
    "name": "Andreas Gruenbacher",
    "email": "agruenba@redhat.com",
    "time": "Wed Oct 27 18:47:42 2021 +0200"
  },
  "committer": {
    "name": "Andreas Gruenbacher",
    "email": "agruenba@redhat.com",
    "time": "Wed Oct 27 22:29:57 2021 +0200"
  },
  "message": "fs: Avoid predictable page faults for sys_write() user buffer pages\n\nIntroduce a new fault_in_iov_iter_slow_readable() helper for faulting in\nan iterator via get_user_pages() instead of triggering page faults.\nThis is slower than a simple memory read when the underlying pages are\nresident, but avoids the page fault overhead when the underlying pages\nneed to be faulted in.\n\nUse fault_in_iov_iter_slow_readable() in generic_perform_write and\niomap_write_iter when reading from the user buffer fails.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruenba@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d8809cd9ab3158ebd88e089769599dd6f8115e92",
      "old_mode": 33188,
      "old_path": "fs/iomap/buffered-io.c",
      "new_id": "15a0b4bb9528d605ca583b5a248ef3a0f760e749",
      "new_mode": 33188,
      "new_path": "fs/iomap/buffered-io.c"
    },
    {
      "type": "modify",
      "old_id": "2f7dd14083d9483e3867f81fee040c8bef4277fa",
      "old_mode": 33188,
      "old_path": "include/linux/pagemap.h",
      "new_id": "43844ed5675f822a46afacab2255da4250077e24",
      "new_mode": 33188,
      "new_path": "include/linux/pagemap.h"
    },
    {
      "type": "modify",
      "old_id": "6350354f97e90f08b0d64f66c349f9224bc1a2f9",
      "old_mode": 33188,
      "old_path": "include/linux/uio.h",
      "new_id": "b071f44450592bcf7ba631bb799a0a0396c958dc",
      "new_mode": 33188,
      "new_path": "include/linux/uio.h"
    },
    {
      "type": "modify",
      "old_id": "66a740e6e153c4846abef78d54dfcff97e96219c",
      "old_mode": 33188,
      "old_path": "lib/iov_iter.c",
      "new_id": "73789a5409f6c0d14369d6951ceebd696a142c44",
      "new_mode": 33188,
      "new_path": "lib/iov_iter.c"
    },
    {
      "type": "modify",
      "old_id": "467cdb7d086d755edc7512bf7908fae6e5834a89",
      "old_mode": 33188,
      "old_path": "mm/filemap.c",
      "new_id": "7ca76f4aa97415afeea54f22898d34bed35f742e",
      "new_mode": 33188,
      "new_path": "mm/filemap.c"
    },
    {
      "type": "modify",
      "old_id": "e1c7e4bde11fd3f68c7e93942ebb27293c566ef4",
      "old_mode": 33188,
      "old_path": "mm/gup.c",
      "new_id": "def9f478a621fd95104c9ec112aa651a5b6d2546",
      "new_mode": 33188,
      "new_path": "mm/gup.c"
    }
  ]
}
