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]; +}; + /*