Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8586feb

Browse files
Additions: Linux: vboxsf: More fixes for kernel 6.16, bugref:10908.
svn:sync-xref-src-repo-rev: r169199
1 parent 88eca72 commit 8586feb

File tree

1 file changed

+11
-5
lines changed
  • src/VBox/Additions/linux/sharedfolders

1 file changed

+11
-5
lines changed

‎src/VBox/Additions/linux/sharedfolders/regops.c‎

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
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
*/
@@ -84,6 +84,12 @@
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

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /