mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
ceph: disable inline data support
Inline data support has been deprecated in the CephFS MDS and is being formally removed. Existing inline data can be migrated to data pool objects via MDS scrub (see PR #44359). Add CONFIG_CEPH_FS_INLINE_DATA (default n) to gate all inline data code in the kclient. When disabled, CEPH_FEATURE_MDS_INLINE_DATA is not advertised to the MDS, which will then refuse to open files that still have inline data, returning -EPERM and preventing silent data corruption that would occur if the kclient tried to read inline data from OSD objects that do not contain it. The conditional compilation is centralized in fs/ceph/super.h, where static inline helpers make all the inline data code compile out cleanly when the option is disabled, so that removing the option later only touches that one place. ceph_inline_version() returns CEPH_INLINE_NONE when the option is disabled, which makes every version comparison in the disabled build constant-fold to false; the stubbed out ceph_uninline_data() and ceph_fill_inline_data() are then unreachable. The MDS still carries inline_version + inline_data on the wire, so the reply and cap grant parsers keep consuming those fields even with the option disabled, only skipping them, to keep the decode pointer in sync for the fields that follow. This config option will be kept for a transitional period to allow existing CephFS deployments to migrate inline data via MDS scrub. Once the migration period ends, the option and all inline data code will be permanently removed. Users upgrading from an older Ceph release should ensure all inline data has been migrated before deploying a kclient with this option disabled: 1. Enable and run MDS scrub to uninline existing data 2. Disable inline_data on the filesystem: ceph fs set <fs> inline_data false --yes-i-really-really-mean-it Link: https://tracker.ceph.com/issues/67769 Signed-off-by: Xiubo Li <xiubo.li@clyso.com> Reviewed-by: Alex Markuze <amarkuze@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
2dd2ba2f40
commit
3f8bbbb580
9 changed files with 167 additions and 32 deletions
Loading…
Add table
Add a link
Reference in a new issue