1- /* $Id: regops.c 109747 2025-06-02 17:38:05Z vadim.galitsyn@oracle.com $ */
1+ /* $Id: regops.c 109844 2025-06-12 12:00:50Z vadim.galitsyn@oracle.com $ */
22/** @file
33 * vboxsf - VBox Linux Shared Folders VFS, regular file inode and file operations.
44 */
8484# define PageUptodate (a_pPage ) Page_Uptodate(a_pPage)
8585#endif
8686
87+ #if RTLNX_VER_MIN (6 ,16 ,0 )
88+ # define VBOX_PAGE_INDEX (_page ) (_page->__folio_index)
89+ #else
90+ # define VBOX_PAGE_INDEX (_page ) (_page->index)
91+ #endif
92+ 8793
8894/*********************************************************************************************************************************
8995* Defined Constants And Macros *
@@ -1789,7 +1795,7 @@ static void vbsf_reg_write_sync_page_cache(struct address_space *mapping, loff_t
17891795 struct page * pDstPage = find_lock_page (mapping , idxPage );
17901796 if (pDstPage ) {
17911797 if ( pDstPage -> mapping == mapping /* ignore if re-purposed (paranoia) */
1792- && pDstPage -> index == idxPage
1798+ && VBOX_PAGE_INDEX ( pDstPage ) == idxPage
17931799 && !PageDirty (pDstPage ) /* ignore if dirty */
17941800 && !PageWriteback (pDstPage ) /* ignore if being written back */ ) {
17951801 /*
@@ -1820,7 +1826,7 @@ static void vbsf_reg_write_sync_page_cache(struct address_space *mapping, loff_t
18201826# endif
18211827 } else
18221828 SFLOGFLOW (("vbsf_reg_write_sync_page_cache: Skipping page %p: mapping=%p (vs %p) writeback=%d offset=%#lx (vs%#lx)\n" ,
1823- pDstPage , pDstPage -> mapping , mapping , PageWriteback (pDstPage ), pDstPage -> index , idxPage ));
1829+ pDstPage , pDstPage -> mapping , mapping , PageWriteback (pDstPage ), VBOX_PAGE_INDEX ( pDstPage ) , idxPage ));
18241830 unlock_page (pDstPage );
18251831 vbsf_put_page (pDstPage );
18261832 }
@@ -3632,7 +3638,7 @@ static int vbsf_readpage(struct file *file, struct page *page)
36323638 struct inode * inode = VBSF_GET_F_DENTRY (file )-> d_inode ;
36333639 int err ;
36343640
3635- SFLOGFLOW (("vbsf_readpage: inode=%p file=%p page=%p off=%#llx\n" , inode , file , page , (uint64_t )page -> index << PAGE_SHIFT ));
3641+ SFLOGFLOW (("vbsf_readpage: inode=%p file=%p page=%p off=%#llx\n" , inode , file , page , (uint64_t )VBOX_PAGE_INDEX ( page ) << PAGE_SHIFT ));
36363642 Assert (PageLocked (page ));
36373643
36383644 if (PageUptodate (page )) {
@@ -3653,7 +3659,7 @@ static int vbsf_readpage(struct file *file, struct page *page)
36533659 vrc = VbglR0SfHostReqReadPgLst (pSuperInfo -> map .root ,
36543660 pReq ,
36553661 sf_r -> Handle .hHost ,
3656- (uint64_t )page -> index << PAGE_SHIFT ,
3662+ (uint64_t )VBOX_PAGE_INDEX ( page ) << PAGE_SHIFT ,
36573663 PAGE_SIZE ,
36583664 1 /*cPages*/ );
36593665
0 commit comments