Parallels Tools installation fails on Vagrant box

With the following Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "almalinux/9"
  config.vm.provider :parallels do |prl|
    prl.update_guest_tools = true
  end
end

The installation of Parallels Tools fails:

$ vagrant up
Bringing machine 'default' up with 'parallels' provider...
==> default: Registering VM image from the base box 'almalinux/9'...
==> default: Creating new virtual machine as a linked clone of the box image...
==> default: Unregistering the box VM image...
==> default: Setting the default configuration for VM...
==> default: Checking if box 'almalinux/9' version '9.1.20221117' is up to date...
…
==> default: Checking for Parallels Tools installed on the VM...
==> default: Parallels Tools were not detected on this VM! They are required
==> default: for shared folders, time sync and more. If shared folders are not
…
Started installation of Parallels Guest Tools version '18.2.0.53488'
Error: failed to install mandatory packages.
Error: failed to install or upgrade Parallels Guest Tools!

Because the ‘parallels-tools-install.log’ shows the underlying error is ‘Unable to find a match: kernel-devel-5.14.0-162.6.1.el9_1.x86_64’, I tried updating the kernel as suggested in KB Parallels: How to update kernel-devel to install Parallels Tools, but the installation of Parallels Tools then still fails at a compilation error:

$ vagrant ssh --command 'sudo yum -y install kernel kernel-devel epel-release' && vagrant reload
…
==> default: Booting VM...
…
Started installation of Parallels Guest Tools version '18.2.0.53488'
…
/usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c:864:10: error: 'const struct address_space_operations' has no member named 'set_page_dirty'

I can’t quite make sense of this error. I found this commit in which set_page_dirty was removed from address_space_operations, but the tags indicate it’s in v5.18 and later:

So I would expect set_page_dirty to still be present in the following (ostensibly v5.14), but it’s not:

$ vagrant ssh --command 'sed -n 369,377p /usr/src/kernels/5.14.0-284.11.1.el9_2.x86_64/include/linux/fs.h'
struct address_space_operations {
	int (*writepage)(struct page *page, struct writeback_control *wbc);
	int (*readpage)(struct file *, struct page *);

	/* Write back some dirty pages from this mapping. */
	int (*writepages)(struct address_space *, struct writeback_control *);

	/* Mark a folio dirty.  Return true if this dirtied it */
	bool (*dirty_folio)(struct address_space *, struct folio *);

What can I do to get the Parallels Tools to install?

I realized now that updating the kernel is not necessary, I can instead ensure the yum variable $releasever is 9.1 and not 9:

$ vagrant up; vagrant ssh --command 'sudo sh -c "echo 9.1 >/etc/yum/vars/releasever"' && vagrant reload
Bringing machine 'default' up with 'parallels' provider...
==> default: Registering VM image from the base box 'almalinux/9'...
==> default: Creating new virtual machine as a linked clone of the box image...
==> default: Unregistering the box VM image...
==> default: Setting the default configuration for VM...
==> default: Checking if box 'almalinux/9' version '9.1.20221117' is up to date...
…
Started installation of Parallels Guest Tools version '18.2.0.53488'
Error: failed to install mandatory packages.
Error: failed to install or upgrade Parallels Guest Tools!
…
==> default: Attempting graceful shutdown of VM...
…
==> default: Booting VM...
…
==> default: Installing the proper version of Parallels Tools. This may take a few minutes...
==> default: Parallels Tools have been installed. Rebooting the VM...
…
==> default: Machine booted and ready!
==> default: Mounting shared folders...