)]}'
{
  "commit": "548e7bcd0c5460ddcbca9600cea603ebeebf4da7",
  "tree": "f6c9495617263ee073c84c9735afa173a3686a3b",
  "parents": [
    "ce727a090be04dc7c51edd5c0da2a41d2fb6e106",
    "8fdf946445732c2bcd685abc8bd0e509d2ebc158"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Aug 28 11:51:05 2026 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Aug 28 11:51:05 2026 -0700"
  },
  "message": "Merge tag \u0027ceph-for-7.3-rc1\u0027 of https://github.com/ceph/ceph-client\n\nPull ceph updates from Ilya Dryomov:\n \"A wide variety of mostly CephFS fixes and cleanups, split between\n  changes that address edge cases (Sam, Xiubo, Matthew), efficiency\n  improvements (Max) and AI-assisted hardening (Michael, Jeremy).\n\n  One thing that stands out is Alex\u0027s change to how CephFS behaves in\n  NEARFULL scenarios: the long-standing \"make all writes synchronous\"\n  behavior has become opt-in. It was always somewhat controversial and\n  doesn\u0027t make much sense for modern deployments; the new default is to\n  continue normal operation (i.e. buffer writes as MDS allows, etc). The\n  behavior in case the cluster reaches any FULL state remains the same\n  as before\"\n\n* tag \u0027ceph-for-7.3-rc1\u0027 of https://github.com/ceph/ceph-client: (32 commits)\n  ceph: force a cap message when a deferred revoke can\u0027t be acked immediately\n  libceph: reject buckets with mismatched CRUSH ids\n  ceph: reject export_targets ranks \u003e\u003d CEPH_MAX_MDS in mdsmap decode\n  ceph: fix leaked inode reference on writeback abort at umount\n  libceph: remove ceph_put_page_vector()\n  libceph: validate banner payload length\n  ceph: make nearfull sync writes opt-in\n  ceph: do not repeat ceph_trim_dentries() if no progress possible\n  ceph: drop mdsc-\u003emutex before decoding the MDS reply\n  ceph: fix UAF in check_new_map() on session freed during unlock\n  ceph: fix UAF in __kick_flushing_caps() on cf entry freed during unlock\n  ceph: pass inode pointer around instead of reloading it\n  ceph: mark cap remove with RB_CLEAR_NODE() instead of setting ci\u003dNULL\n  ceph: add helper function ceph_cap_is_removed()\n  ceph: make __ceph_remove_cap() static\n  ceph: cap delegated inode count in ceph_parse_deleg_inos()\n  ceph: bound num_export_targets array for mds info v2/v3\n  ceph: bound MDSCapAuth path and fs_name decode in handle_session()\n  ceph: bound xattr value length in __build_xattrs()\n  ceph: bound copied dentry name length in NFS export get_name\n  ...\n",
  "tree_diff": []
}
