smoverlay/app-emulation/vmware-modules/files/vmblock-4.0.4.patch

63 lines
2.1 KiB
Diff

diff --git a/vmblock-only/linux/dentry.c b/vmblock-only/linux/dentry.c
index d885777..513cadd 100644
--- a/vmblock-only/linux/dentry.c
+++ b/vmblock-only/linux/dentry.c
@@ -38,6 +38,20 @@ struct dentry_operations LinkDentryOps = {
.d_revalidate = DentryOpRevalidate,
};
+struct nameidata {
+ struct path path;
+ struct qstr last;
+ struct path root;
+ struct inode *inode; /* path.dentry.d_inode */
+ unsigned int flags;
+ unsigned seq, m_seq;
+ int last_type;
+ unsigned depth;
+ struct file *base;
+ char *saved_names[MAX_NESTED_LINKS + 1];
+};
+
+
/*
*----------------------------------------------------------------------------
diff --git a/vmblock-only/linux/file.c b/vmblock-only/linux/file.c
index 5499169..753e523 100644
--- a/vmblock-only/linux/file.c
+++ b/vmblock-only/linux/file.c
@@ -92,7 +92,7 @@ FileOpOpen(struct inode *inode, // IN
* and that would try to acquire the inode's semaphore; if the two inodes
* are the same we'll deadlock.
*/
- if (actualFile->f_dentry && inode == actualFile->f_dentry->d_inode) {
+ if (actualFile->f_path.dentry && inode == actualFile->f_path.dentry->d_inode) {
Warning("FileOpOpen: identical inode encountered, open cannot succeed.\n");
if (filp_close(actualFile, current->files) < 0) {
Warning("FileOpOpen: unable to close opened file.\n");
diff --git a/vmblock-only/linux/filesystem.c b/vmblock-only/linux/filesystem.c
index af57499..70f97b5 100644
--- a/vmblock-only/linux/filesystem.c
+++ b/vmblock-only/linux/filesystem.c
@@ -76,6 +76,19 @@ static struct file_system_type fsType = {
#endif
.kill_sb = kill_anon_super,
};
+struct nameidata {
+ struct path path;
+ struct qstr last;
+ struct path root;
+ struct inode *inode; /* path.dentry.d_inode */
+ unsigned int flags;
+ unsigned seq, m_seq;
+ int last_type;
+ unsigned depth;
+ struct file *base;
+ char *saved_names[MAX_NESTED_LINKS + 1];
+};
+
/*