)]}'
{
  "commit": "f41242e951d569149a58b5a695e61304bf4212c3",
  "tree": "bd8404c1ad99bcfe4314e42908238348c8623964",
  "parents": [
    "1137aa577a35e2684e8046c3e53f920e79c7cc60"
  ],
  "author": {
    "name": "Hengyu Liang",
    "email": "hengyul@cs.unc.edu",
    "time": "Fri Oct 23 15:00:51 2026 -0400"
  },
  "committer": {
    "name": "Gao Xiang",
    "email": "xiang@kernel.org",
    "time": "Sat Oct 24 22:37:25 2026 +0200"
  },
  "message": "erofs: fix metadata reads at the end of file-backed images\n\nCommit e587a984d332 (\"erofs: use dedicated meta inodes for file-backed\nmounts\") made erofs_read_meta_folio() read the metadata of a\nfile-backed mount one whole folio at a time.\n\nHowever, an image only has to be a multiple of its block size. With a\nblock size below the page size, it can end in the middle of a page. The\nread of that last page is then short, and erofs_fileio_ki_complete()\nfails it with -EIO. As of now, inodes in the last page of such an image\ncannot be read, and an image smaller than a page cannot be mounted.\n\nThe issue can be reproduced with util-linux 2.41, whose mount uses the\nimage file directly:\n\n    mkdir src\n    for i in $(seq 50); do echo $i \u003e src/$i; done\n    mkfs.erofs -b512 test.erofs src\n    mount -t erofs test.erofs /mnt\n    ls -l /mnt\n\nBefore that commit, ls -l lists all 50 files. After it, ls -l reports\n\"Input/output error\" for 24 of them.\n\nThis patch reads the folio only up to the end of the backing file and\nzeroes the rest, as the page cache of the backing file did before. A\nfolio that lies wholly past the end is zeroed without a read.\n\nFixes: e587a984d332 (\"erofs: use dedicated meta inodes for file-backed mounts\")\nCc: stable@vger.kernel.org\nSigned-off-by: Hengyu Liang \u003chengyul@cs.unc.edu\u003e\nReviewed-by: Gao Xiang \u003cxiang@kernel.org\u003e\nSigned-off-by: Gao Xiang (Docker) \u003cxiang@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c36a90a1a4cbb68b4af1c101f1701749228434fd",
      "old_mode": 33188,
      "old_path": "fs/erofs/fileio.c",
      "new_id": "e13293ec70de8fba32664380c6f72c86b640e8f2",
      "new_mode": 33188,
      "new_path": "fs/erofs/fileio.c"
    }
  ]
}
