[PATCH] orangefs: use folio_pos() and folio_size() in orangefs_page_mkwrite()
Tal Zussman <[email protected]> Sun, 09 Aug 2026 16:07:10 -0400
| Newsgroups | gmane.linux.file-systems,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
orangefs_page_mkwrite() records the faulted range with page_offset(vmf->page) and PAGE_SIZE, although the write range it sets is attached to the folio and the rest of the function already operates on folios. Use folio_pos() and folio_size() instead. This gets rid of two calls to page_offset(), removing two calls to compound_head(). No functional change. orangefs folios are always order-0, so the values are identical. However, if orangefs ever enables large folios, this change is necessary for correctness with the current write range tracking scheme. Tracking only a single page of a larger folio would leave the rest of the folio's dirty data outside the range that gets written back, leading to data loss. Signed-off-by: Tal Zussman <[email protected]> --- fs/orangefs/inode.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c index 7143b64b5b25..cd3273c88e03 100644 --- a/fs/orangefs/inode.c +++ b/fs/orangefs/inode.c @@ -652,8 +652,8 @@ vm_fault_t orangefs_page_mkwrite(struct vm_fault *vmf) wr = folio_get_private(folio); if (uid_eq(wr->uid, current_fsuid()) && gid_eq(wr->gid, current_fsgid())) { - wr->pos = page_offset(vmf->page); - wr->len = PAGE_SIZE; + wr->pos = folio_pos(folio); + wr->len = folio_size(folio); goto okay; } else { if (orangefs_launder_folio(folio)) { @@ -667,8 +667,8 @@ vm_fault_t orangefs_page_mkwrite(struct vm_fault *vmf) ret = VM_FAULT_LOCKED|VM_FAULT_RETRY; goto out; } - wr->pos = page_offset(vmf->page); - wr->len = PAGE_SIZE; + wr->pos = folio_pos(folio); + wr->len = folio_size(folio); wr->uid = current_fsuid(); wr->gid = current_fsgid(); folio_attach_private(folio, wr); --- base-commit: 075b74841bd0065a3bda3440873c747938e69b68 change-id: 20260809-orangefs-mkwrite-folio-ec562f7625b4 Best regards, -- Tal Zussman <[email protected]>