Differential D26014 Diff 75662 emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c
Changeset View
Changeset View
Standalone View
Standalone View
emulators/virtualbox-ose/files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c
--- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c.orig 2019-10-10 18:06:51 UTC | --- src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c.orig 2019-10-10 18:06:51 UTC | ||||
+++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c | +++ src/VBox/Additions/freebsd/vboxvfs/vboxvfs_vnops.c | ||||
@@ -1,10 +1,6 @@ | @@ -1,10 +1,6 @@ | ||||
-/* $Id: vboxvfs_vnops.c $ */ | -/* $Id: vboxvfs_vnops.c $ */ | ||||
-/** @file | -/** @file | ||||
- * Description. | - * Description. | ||||
- */ | - */ | ||||
- | - | ||||
/* | /* | ||||
* Copyright (C) 2008-2017 Oracle Corporation | * Copyright (C) 2008-2017 Oracle Corporation | ||||
+ * Copyright (C) 2017 Mahdi Mokhtari | + * Copyright (C) 2017 Mahdi Mokhtari | ||||
* | * | ||||
* This file is part of VirtualBox Open Source Edition (OSE), as | * This file is part of VirtualBox Open Source Edition (OSE), as | ||||
* available from http://www.virtualbox.org. This file is free software; | * available from http://www.virtualbox.org. This file is free software; | ||||
@@ -14,228 +10,1338 @@ | @@ -14,228 +10,1342 @@ | ||||
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the | * VirtualBox OSE distribution. VirtualBox OSE is distributed in the | ||||
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. | * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. | ||||
*/ | */ | ||||
- | - | ||||
-#include "vboxvfs.h" | -#include "vboxvfs.h" | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/namei.h> | #include <sys/namei.h> | ||||
▲ Show 20 Lines • Show All 474 Lines • ▼ Show 20 Lines | |||||
+ | + | ||||
+ if (vsfnode_stat_cached(node)) | + if (vsfnode_stat_cached(node)) | ||||
+ error = 0; | + error = 0; | ||||
+ else | + else | ||||
+ error = vsfnode_update_stat_cache(node); | + error = vsfnode_update_stat_cache(node); | ||||
+ m = (error == 0) ? node->sf_stat.sf_mode : 0; | + m = (error == 0) ? node->sf_stat.sf_mode : 0; | ||||
+ | + | ||||
+ return (vaccess(vp->v_type, m, node->vboxfsmp->sf_uid, | + return (vaccess(vp->v_type, m, node->vboxfsmp->sf_uid, | ||||
+ node->vboxfsmp->sf_gid, accmode, ap->a_cred, NULL)); | + node->vboxfsmp->sf_gid, accmode, ap->a_cred | ||||
+#if __FreeBSD_version < 1300105 | |||||
+ , NULL | |||||
+#endif | |||||
+ )); | |||||
} | } | ||||
-static int vboxvfs_link(struct vop_link_args *ap) | -static int vboxvfs_link(struct vop_link_args *ap) | ||||
+/* | +/* | ||||
+ * Clears the (cached) directory listing for the node. | + * Clears the (cached) directory listing for the node. | ||||
+ */ | + */ | ||||
+static void | +static void | ||||
+vfsnode_clear_dir_list(struct vboxfs_node *np) | +vfsnode_clear_dir_list(struct vboxfs_node *np) | ||||
▲ Show 20 Lines • Show All 963 Lines • Show Last 20 Lines |