diff options
| author | Felix Geyer <debfx-pkg@fobos.de> | 2012-06-21 10:56:05 +0200 |
|---|---|---|
| committer | Felix Geyer <debfx-pkg@fobos.de> | 2012-06-21 10:56:05 +0200 |
| commit | b0bc77b9da451781ff6b93f0e1b470f2bd41537c (patch) | |
| tree | 8572903af14a7c7f398e36f9b2e9a2d22d4e6994 /src/VBox/Additions | |
| parent | d66c35b4c98bbfb0b0dd20ef5fa250fea2715cbc (diff) | |
| download | virtualbox-b0bc77b9da451781ff6b93f0e1b470f2bd41537c.tar.gz | |
Imported Upstream version 4.1.18-dfsgupstream/4.1.18-dfsg
Diffstat (limited to 'src/VBox/Additions')
| -rw-r--r-- | src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp | 2 | ||||
| -rw-r--r-- | src/VBox/Additions/linux/Makefile | 2 | ||||
| -rw-r--r-- | src/VBox/Additions/linux/sharedfolders/dirops.c | 10 | ||||
| -rw-r--r-- | src/VBox/Additions/linux/sharedfolders/utils.c | 7 | ||||
| -rw-r--r-- | src/VBox/Additions/linux/sharedfolders/vfsmod.c | 5 | ||||
| -rwxr-xr-x | src/VBox/Additions/solaris/Installer/postinstall.sh | 50 | ||||
| -rw-r--r-- | src/VBox/Additions/solaris/Makefile.kmk | 2 |
7 files changed, 62 insertions, 16 deletions
diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp index eb528c98d..25cf3ca39 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp @@ -63,6 +63,7 @@ VBGLR3DECL(int) VbglR3AutoLogonReportStatus(VBoxGuestFacilityStatus enmStatus) * VMMDevReportGuestStatus implemented we set the appropriate status via * guest property to have at least something. */ +#ifdef VBOX_WITH_GUEST_PROPS uint32_t u32ClientId = 0; rc = VbglR3GuestPropConnect(&u32ClientId); if (RT_SUCCESS(rc)) @@ -124,6 +125,7 @@ VBGLR3DECL(int) VbglR3AutoLogonReportStatus(VBoxGuestFacilityStatus enmStatus) VbglR3GuestPropDisconnect(u32ClientId); } +#endif } s_enmLastStatus = enmStatus; diff --git a/src/VBox/Additions/linux/Makefile b/src/VBox/Additions/linux/Makefile index 2b89dcad7..c5beef410 100644 --- a/src/VBox/Additions/linux/Makefile +++ b/src/VBox/Additions/linux/Makefile @@ -45,6 +45,7 @@ all: else \ cp vboxsf/vboxsf.o .; \ fi; \ + echo; \ fi @if [ -d vboxvideo ]; then \ if [ -f vboxguest/Module.symvers ]; then \ @@ -57,6 +58,7 @@ all: else \ cp vboxvideo/vboxvideo.o .; \ fi; \ + echo; \ fi install: diff --git a/src/VBox/Additions/linux/sharedfolders/dirops.c b/src/VBox/Additions/linux/sharedfolders/dirops.c index 4a8144b62..3442f2a32 100644 --- a/src/VBox/Additions/linux/sharedfolders/dirops.c +++ b/src/VBox/Additions/linux/sharedfolders/dirops.c @@ -357,6 +357,7 @@ static struct dentry *sf_lookup(struct inode *parent, struct dentry *dentry goto fail1; } sf_new_i->handle = SHFL_HANDLE_NIL; + sf_new_i->force_reread = 0; ino = iunique(parent->i_sb, 1); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25) @@ -382,7 +383,11 @@ static struct dentry *sf_lookup(struct inode *parent, struct dentry *dentry sf_i->force_restat = 0; dentry->d_time = jiffies; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + d_set_d_op(dentry, &sf_dentry_ops); +#else dentry->d_op = &sf_dentry_ops; +#endif d_add(dentry, inode); return NULL; @@ -446,8 +451,13 @@ static int sf_instantiate(struct inode *parent, struct dentry *dentry, SET_INODE_INFO(inode, sf_new_i); dentry->d_time = jiffies; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + d_set_d_op(dentry, &sf_dentry_ops); +#else dentry->d_op = &sf_dentry_ops; +#endif sf_new_i->force_restat = 1; + sf_new_i->force_reread = 0; d_instantiate(dentry, inode); diff --git a/src/VBox/Additions/linux/sharedfolders/utils.c b/src/VBox/Additions/linux/sharedfolders/utils.c index d6eb2ec1c..e8971988e 100644 --- a/src/VBox/Additions/linux/sharedfolders/utils.c +++ b/src/VBox/Additions/linux/sharedfolders/utils.c @@ -258,6 +258,13 @@ sf_dentry_revalidate(struct dentry *dentry, struct nameidata *nd) #endif { TRACE(); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + /* see Documentation/filesystems/vfs.txt */ + if (nd && nd->flags & LOOKUP_RCU) + return -ECHILD; +#endif + if (sf_inode_revalidate(dentry)) return 0; diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.c b/src/VBox/Additions/linux/sharedfolders/vfsmod.c index c27040b83..001ec45c7 100644 --- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c +++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c @@ -240,6 +240,7 @@ static int sf_read_super_aux(struct super_block *sb, void *data, int flags) sf_i->path->u16Size = 2; sf_i->path->String.utf8[0] = '/'; sf_i->path->String.utf8[1] = 0; + sf_i->force_reread = 0; err = sf_stat(__func__, sf_g, sf_i->path, &fsinfo, 0); if (err) @@ -373,7 +374,11 @@ static void sf_evict_inode(struct inode *inode) TRACE(); truncate_inode_pages(&inode->i_data, 0); +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) + clear_inode(inode); +# else end_writeback(inode); +# endif sf_i = GET_INODE_INFO(inode); if (!sf_i) diff --git a/src/VBox/Additions/solaris/Installer/postinstall.sh b/src/VBox/Additions/solaris/Installer/postinstall.sh index 574fdfc36..12c1874fc 100755 --- a/src/VBox/Additions/solaris/Installer/postinstall.sh +++ b/src/VBox/Additions/solaris/Installer/postinstall.sh @@ -118,7 +118,7 @@ fi if test "$currentzone" = "global"; then # vboxguest.sh would've been installed, we just need to call it. echo "Configuring VirtualBox guest kernel module..." - # stop all previous moduels (vboxguest, vboxfs) and start only starts vboxguest + # stop all previous moduels (vboxguest, vboxfs) and start only starts vboxguest $vboxadditions_path/vboxguest.sh stopall silentunload $vboxadditions_path/vboxguest.sh start @@ -161,7 +161,7 @@ if test ! -z "$xorgbin"; then case "$xorgversion" in 1.3.* ) - vboxmouse_src="vboxmouse_drv_71.so" + vboxmouse_src="vboxmouse_drv_13.so" vboxvideo_src="vboxvideo_drv_13.so" ;; 1.4.* ) @@ -310,14 +310,9 @@ if test ! -z "$xorgbin"; then /usr/sbin/removef $PKGINST $vboxadditions_path/$xorgconf_unfit 1>/dev/null rm -f $vboxadditions_path/$xorgconf_unfit fi - case "$xorgversion" in - 7.1.* | 7.2.* | 6.9.* | 7.0.* | 1.3.* ) - $vboxadditions_path/x11config.pl - ;; - 1.4.* | 1.5.* | 1.6.* | 1.7.* | 1.8.* | 1.9.* | 1.10.*) - $vboxadditions_path/x11config15sol.pl - ;; - esac + + # Adjust xorg.conf with mouse and video driver sections + $vboxadditions_path/x11config15sol.pl fi fi @@ -412,10 +407,37 @@ fi if test "$currentzone" = "global"; then /usr/sbin/devfsadm -i vboxguest - # Setup our VBoxService SMF service - echo "Configuring service..." - /usr/sbin/svcadm restart svc:/system/manifest-import:default - /usr/sbin/svcadm enable -s virtualbox/vboxservice + # Setup VBoxService & start the service automatically + echo "Configuring service (this might take a while)..." + cmax=32 + cslept=0 + success=0 + sync + + # Since S11 the way to import a manifest is via restarting manifest-import which is asynchronous and can + # take a while to complete, using disable/enable -s doesn't work either. So we restart it, and poll in + # 1 second intervals to see if our service has been successfully imported and timeout after 'cmax' seconds. + /usr/sbin/svcadm restart svc:system/manifest-import:default + is_import=`/usr/bin/svcs virtualbox/vboxservice >/dev/null 2>&1` + while test $? -ne 0; + do + sleep 1 + cslept=`expr $cslept + 1` + if test "$cslept" -eq "$cmax"; then + success=1 + break + fi + is_import=`/usr/bin/svcs virtualbox/vboxservice >/dev/null 2>&1` + done + if test "$success" -eq 0; then + echo "Enabling service..." + /usr/sbin/svcadm enable -s virtualbox/vboxservice + else + echo "## VBoxService import failed." + echo "## See /var/svc/log/system-manifest-import:default.log for details." + # Exit as partially failed installation + retval=2 + fi # Update boot archive BOOTADMBIN=/sbin/bootadm diff --git a/src/VBox/Additions/solaris/Makefile.kmk b/src/VBox/Additions/solaris/Makefile.kmk index 0646da3c0..d5c5786d0 100644 --- a/src/VBox/Additions/solaris/Makefile.kmk +++ b/src/VBox/Additions/solaris/Makefile.kmk @@ -204,7 +204,6 @@ SOLARIS_ADD_XORG_DRIVERS = \ SOLARIS_ADD_COMMON_BINS = \ vboxguest.sh \ - x11config.pl \ x11config15sol.pl \ x11restore.pl \ VBox.sh \ @@ -278,7 +277,6 @@ $(PATH_STAGE_BIN)/additions/$(PKGFILENAME): \ $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxservice.xml \ $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/VBox.sh \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/98vboxadd-xclient \ - $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config.pl \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config15sol.pl \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11restore.pl \ $(VBOX_PATH_X11_ADDITION_INSTALLER)/solaris_xorg.conf \ |
