File vbox-vboxfs-2.6.25 of Package virtualbox-ose

---
 src/VBox/Additions/linux/sharedfolders/Makefile.kmk |    4 ++--
 src/VBox/Additions/linux/sharedfolders/dirops.c     |   17 +++++++++++++++++
 src/VBox/Additions/linux/sharedfolders/vfsmod.c     |    8 ++++++++
 3 files changed, 27 insertions(+), 2 deletions(-)

--- a/src/VBox/Additions/linux/sharedfolders/Makefile.kmk
+++ b/src/VBox/Additions/linux/sharedfolders/Makefile.kmk
@@ -31,11 +31,11 @@ include files_vboxvfs
 #
 # Install the source.
 #
-vboxvfs-bin_INST        = $(INST_ADDITIONS)/src/vboxvfs
+vboxvfs-bin_INST        = $(INST_ADDITIONS)src/vboxvfs/
 vboxvfs-bin_MODE        = a+r,u+w
 vboxvfs-bin_SOURCES     = $(subst ",,$(FILES_VBOXVFS_NOBIN))
 
-vboxvfs-sh_INST         = $(INST_ADDITIONS)/src/vboxvfs
+vboxvfs-sh_INST         = $(INST_ADDITIONS)src/vboxvfs/
 vboxvfs-sh_MODE         = a+rx,u+w
 vboxvfs-sh_SOURCES      = $(subst ",,$(FILES_VBOXVFS_BIN))
 
--- a/src/VBox/Additions/linux/sharedfolders/dirops.c
+++ b/src/VBox/Additions/linux/sharedfolders/dirops.c
@@ -286,7 +286,11 @@ sf_lookup (struct inode *parent, struct
                 }
 
                 ino = iunique (parent->i_sb, 1);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 4, 25)
+                inode = iget_locked (parent->i_sb, ino);
+#else
                 inode = iget (parent->i_sb, ino);
+#endif
                 if (!inode) {
                         elog2 ("iget failed\n");
                         err = -ENOMEM;          /* XXX: ??? */
@@ -296,6 +300,10 @@ sf_lookup (struct inode *parent, struct
                 SET_INODE_INFO (inode, sf_new_i);
                 sf_init_inode (sf_g, inode, &fsinfo);
                 sf_new_i->path = path;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 4, 25)
+                unlock_new_inode(inode);
+#endif
         }
 
         sf_i->force_restat = 0;
@@ -338,7 +346,11 @@ sf_instantiate (const char *caller, stru
         }
 
         ino = iunique (parent->i_sb, 1);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 4, 25)
+        inode = iget_locked (parent->i_sb, ino);
+#else
         inode = iget (parent->i_sb, ino);
+#endif
         if (!inode) {
                 elog3 ("%s: %s: iget failed\n", caller, __func__);
                 err = -ENOMEM;
@@ -354,6 +366,11 @@ sf_instantiate (const char *caller, stru
         sf_new_i->force_restat = 1;
 
         d_instantiate (dentry, inode);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 4, 25)
+                unlock_new_inode(inode);
+#endif
+
         return 0;
 
  fail1:
--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c
+++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c
@@ -257,7 +257,11 @@ sf_read_super_aux (struct super_block *s
         sb->s_blocksize = 1024;
         sb->s_op = &sf_super_ops;
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 4, 25)
+        iroot = iget_locked (sb, 0);
+#else
         iroot = iget (sb, 0);
+#endif
         if (!iroot) {
                 err = -ENOMEM;  /* XXX */
                 elog2 ("could not get root inode\n");
@@ -267,6 +271,10 @@ sf_read_super_aux (struct super_block *s
         sf_init_inode (sf_g, iroot, &fsinfo);
         SET_INODE_INFO (iroot, sf_i);
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 4, 25)
+        unlock_new_inode(iroot);
+#endif
+
         droot = d_alloc_root (iroot);
         if (!droot) {
                 err = -ENOMEM;  /* XXX */
openSUSE Build Service is sponsored by