84 lines
3.3 KiB
Diff
84 lines
3.3 KiB
Diff
diff -Nurp work.orig/vmblock-only/linux/control.c work/vmblock-only/linux/control.c
|
|
--- work.orig/vmblock-only/linux/control.c 2013-11-14 16:43:35.178453173 +0000
|
|
+++ work/vmblock-only/linux/control.c 2013-11-14 16:44:10.933823983 +0000
|
|
@@ -279,7 +279,7 @@ ExecuteBlockOp(const char __user *buf,
|
|
int i;
|
|
int retval;
|
|
|
|
- name = getname(buf);
|
|
+ name = (char*)getname(buf)->name;
|
|
if (IS_ERR(name)) {
|
|
return PTR_ERR(name);
|
|
}
|
|
diff -Nurp work.orig/vmblock-only/linux/dentry.c work/vmblock-only/linux/dentry.c
|
|
--- work.orig/vmblock-only/linux/dentry.c 2013-10-18 17:56:11.000000000 +0000
|
|
+++ work/vmblock-only/linux/dentry.c 2013-11-14 16:44:10.933823983 +0000
|
|
@@ -32,7 +32,7 @@
|
|
#include "block.h"
|
|
|
|
|
|
-static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd);
|
|
+static int DentryOpRevalidate(struct dentry *dentry, unsigned int flags);
|
|
|
|
struct dentry_operations LinkDentryOps = {
|
|
.d_revalidate = DentryOpRevalidate,
|
|
@@ -60,7 +60,7 @@ struct dentry_operations LinkDentryOps =
|
|
|
|
static int
|
|
DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
|
|
- struct nameidata *nd) // IN: lookup flags & intent
|
|
+ unsigned int flags) // IN: lookup flags & intent
|
|
{
|
|
VMBlockInodeInfo *iinfo;
|
|
struct nameidata actualNd;
|
|
@@ -101,7 +101,7 @@ DentryOpRevalidate(struct dentry *dentry
|
|
if (actualDentry &&
|
|
actualDentry->d_op &&
|
|
actualDentry->d_op->d_revalidate) {
|
|
- return actualDentry->d_op->d_revalidate(actualDentry, nd);
|
|
+ return actualDentry->d_op->d_revalidate(actualDentry, flags);
|
|
}
|
|
|
|
if (compat_path_lookup(iinfo->name, 0, &actualNd)) {
|
|
diff -Nurp work.orig/vmblock-only/linux/inode.c work/vmblock-only/linux/inode.c
|
|
--- work.orig/vmblock-only/linux/inode.c 2013-10-18 17:56:11.000000000 +0000
|
|
+++ work/vmblock-only/linux/inode.c 2013-11-14 16:44:41.079398115 +0000
|
|
@@ -36,7 +36,7 @@
|
|
|
|
/* Inode operations */
|
|
static struct dentry *InodeOpLookup(struct inode *dir,
|
|
- struct dentry *dentry, struct nameidata *nd);
|
|
+ struct dentry *dentry, unsigned int flags);
|
|
static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
|
static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
|
|
@@ -75,7 +75,7 @@ static struct inode_operations LinkInode
|
|
static struct dentry *
|
|
InodeOpLookup(struct inode *dir, // IN: parent directory's inode
|
|
struct dentry *dentry, // IN: dentry to lookup
|
|
- struct nameidata *nd) // IN: lookup intent and information
|
|
+ unsigned int flags) // IN: lookup intent and information
|
|
{
|
|
char *filename;
|
|
struct inode *inode;
|
|
@@ -135,7 +135,8 @@ InodeOpLookup(struct inode *dir, //
|
|
inode->i_size = INODE_TO_IINFO(inode)->nameLen;
|
|
inode->i_version = 1;
|
|
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
|
- inode->i_uid = inode->i_gid = 0;
|
|
+ inode->i_uid = KUIDT_INIT(0);
|
|
+ inode->i_gid = KGIDT_INIT(0);
|
|
inode->i_op = &LinkInodeOps;
|
|
|
|
d_add(dentry, inode);
|
|
@@ -221,7 +222,7 @@ InodeOpFollowlink(struct dentry *dentry,
|
|
goto out;
|
|
}
|
|
|
|
- ret = vfs_follow_link(nd, iinfo->name);
|
|
+ nd_set_link(nd, iinfo->name);
|
|
|
|
out:
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
|
|