
This patch was originally written by Wilhelm Meier.

Index: fs/aufs/vfsub.h
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/vfsub.h,v
retrieving revision 1.16
diff -u -p -r1.16 vfsub.h
--- fs/aufs/vfsub.h	12 Aug 2007 21:55:27 -0000	1.16
+++ fs/aufs/vfsub.h	5 Sep 2007 06:33:58 -0000
@@ -201,7 +201,11 @@ int do_vfsub_symlink(struct inode *dir, 
 	LKTRTrace("i%lu, %.*s, %s, 0x%x\n",
 		  dir->i_ino, DLNPair(dentry), symname, mode);
 
+#ifdef CONFIG_VSERVER
+	err = vfs_symlink(dir, dentry, symname, mode, NULL);
+#else
 	err = vfs_symlink(dir, dentry, symname, mode);
+#endif
 	if (!err) {
 		au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
 		au_update_fuse_h_inode(NULL, dentry); /*ignore*/
@@ -217,7 +221,11 @@ int do_vfsub_mknod(struct inode *dir, st
 
 	LKTRTrace("i%lu, %.*s, 0x%x\n", dir->i_ino, DLNPair(dentry), mode);
 
+#ifdef CONFIG_VSERVER
+	err = vfs_mknod(dir, dentry, mode, dev, NULL);
+#else
 	err = vfs_mknod(dir, dentry, mode, dev);
+#endif
 	if (!err) {
 		au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
 		au_update_fuse_h_inode(NULL, dentry); /*ignore*/
@@ -235,7 +243,11 @@ int do_vfsub_link(struct dentry *src_den
 		  DLNPair(src_dentry), dir->i_ino, DLNPair(dentry));
 
 	lockdep_off();
+#ifdef CONFIG_VSERVER
+	err = vfs_link(src_dentry, dir, dentry, NULL);
+#else
 	err = vfs_link(src_dentry, dir, dentry);
+#endif
 	lockdep_on();
 	if (!err) {
 		LKTRTrace("src_i %p, dst_i %p\n", src_dentry->d_inode, dentry->d_inode);
@@ -275,7 +287,11 @@ int do_vfsub_mkdir(struct inode *dir, st
 
 	LKTRTrace("i%lu, %.*s, 0x%x\n", dir->i_ino, DLNPair(dentry), mode);
 
+#ifdef CONFIG_VSERVER
+	err = vfs_mkdir(dir, dentry, mode, NULL);
+#else
 	err = vfs_mkdir(dir, dentry, mode);
+#endif
 	if (!err) {
 		au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
 		au_update_fuse_h_inode(NULL, dentry); /*ignore*/
@@ -290,7 +306,11 @@ static inline int do_vfsub_rmdir(struct 
 	LKTRTrace("i%lu, %.*s\n", dir->i_ino, DLNPair(dentry));
 
 	lockdep_off();
+#ifdef CONFIG_VSERVER
+	err = vfs_rmdir(dir, dentry, NULL);
+#else
 	err = vfs_rmdir(dir, dentry);
+#endif
 	lockdep_on();
 	if (!err)
 		au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
@@ -305,7 +325,11 @@ static inline int do_vfsub_unlink(struct
 
 	/* vfs_unlink() locks inode */
 	lockdep_off();
+#ifdef CONFIG_VSERVER
+	err = vfs_unlink(dir, dentry, NULL);
+#else
 	err = vfs_unlink(dir, dentry);
+#endif
 	lockdep_on();
 	if (!err)
 		au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
