On Fri, Aug 07, 2026, Ackerley Tng wrote:
quoted hunk ↗ jump to hunk
static __always_inline struct gmem_inode *GMEM_I(struct inode *inode)
@@ -61,9 +69,25 @@ static pgoff_t kvm_gmem_get_index(struct kvm_memory_slot *slot, gfn_t gfn)
return gfn - slot->base_gfn + slot->gmem.pgoff;
}
+static u64 kvm_gmem_get_attributes(struct inode *inode, void *entry)
+{
+ if (WARN_ON_ONCE(!entry)) {
+ bool initially_shared = GMEM_I(inode)->flags &
+ GUEST_MEMFD_FLAG_INIT_SHARED;
+
+ return initially_shared ? 0 : KVM_MEMORY_ATTRIBUTE_PRIVATE;
As David pointed out in v9[*], a helper would make this code in particular much
easier to read. Though my vote is to add "get" and make it plural, because this
function is also plural. I.e. this as fixup:
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
index f2bec0d49747..b7435a8d2405 100644
--- a/virt/kvm/guest_memfd.c
+++ b/virt/kvm/guest_memfd.c
@@ -69,14 +69,17 @@ static pgoff_t kvm_gmem_get_index(struct kvm_memory_slot *slot, gfn_t gfn)
return gfn - slot->base_gfn + slot->gmem.pgoff;
}
+static u64 kvm_gmem_get_default_attributes(struct inode *inode)
+{
+ bool init_shared = GMEM_I(inode)->flags & GUEST_MEMFD_FLAG_INIT_SHARED;
+
+ return init_shared ? 0 : KVM_MEMORY_ATTRIBUTE_PRIVATE;
+}
+
static u64 kvm_gmem_get_attributes(struct inode *inode, void *entry)
{
- if (WARN_ON_ONCE(!entry)) {
- bool initially_shared = GMEM_I(inode)->flags &
- GUEST_MEMFD_FLAG_INIT_SHARED;
-
- return initially_shared ? 0 : KVM_MEMORY_ATTRIBUTE_PRIVATE;
- }
+ if (WARN_ON_ONCE(!entry))
+ return kvm_gmem_get_default_attributes(inode);
return xa_to_value(entry);
}@@ -833,7 +836,7 @@ static int kvm_gmem_init_inode(struct inode *inode, loff_t size, u64 flags)
* index is represented in the maple tree at all times simplifies the
* conversion and merging logic.
*/
- attrs = gi->flags & GUEST_MEMFD_FLAG_INIT_SHARED ? 0 : KVM_MEMORY_ATTRIBUTE_PRIVATE;
+ attrs = kvm_gmem_get_default_attributes(inode);
/*
* Acquire the invalidation lock purely to make lockdep happy. The
[*] https://lore.kernel.org/all/0a85b27a-121e-40a3-92b6-3927fc298e4e@kernel.org (local)