23 lines
1.2 KiB
Diff
23 lines
1.2 KiB
Diff
|
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/utils.c
|
||
|
===================================================================
|
||
|
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/sharedfolders/utils.c
|
||
|
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/utils.c
|
||
|
@@ -297,10 +297,14 @@ DECLINLINE(int) sf_file_mode_to_linux(ui
|
||
|
*/
|
||
|
static void vbsf_update_inode_timestamps(struct inode *pInode, PSHFLFSOBJINFO pObjInfo)
|
||
|
{
|
||
|
+/* Oracle has a bad fix for i_atime, etc missing from struct inode. The fix
|
||
|
+ * below produces the correct results, but is not correct either as it references
|
||
|
+ * variables such as __i_atime that are supposed to be hidden. Larry Finger
|
||
|
+ */
|
||
|
#if RTLNX_VER_MIN(6,6,0)
|
||
|
- struct timespec64 ts;
|
||
|
- vbsf_time_to_linux(&ts, &pObjInfo->ChangeTime);
|
||
|
- inode_set_ctime_to_ts(pInode, ts);
|
||
|
+ vbsf_time_to_linux(&pInode->__i_atime, &pObjInfo->AccessTime);
|
||
|
+ vbsf_time_to_linux(&pInode->__i_ctime, &pObjInfo->ChangeTime);
|
||
|
+ vbsf_time_to_linux(&pInode->__i_mtime, &pObjInfo->ModificationTime);
|
||
|
#else
|
||
|
vbsf_time_to_linux(&pInode->i_atime, &pObjInfo->AccessTime);
|
||
|
vbsf_time_to_linux(&pInode->i_ctime, &pObjInfo->ChangeTime);
|