dazuko for linux 3.x?

Erik Miller <[email protected]> Wed, 25 Apr 2012 19:42:38 -0400
Newsgroups gmane.linux.dazuko.devel
Message-ID <CAOh=cAuZFuCaN3XNCj3=KH+-xS7XOLinZ5tzV6zF0e+md0xnQA@mail.gmail.com>
This project has been stagnant for a while. I wanted to see how hard
it would be to get it running with a 3.0 or 3.2 linux kernel.  I'm not
a strong programmer, but I started converting it over today. With any
luck maybe we can get it working again.

it compiles okay, but it doesn't appear to do anything. I think the
problem might be in the dazukofs_d_compare function in the dentry.c
file, ~= line 159, which was not converted over correctly.

Anyone have any ideas?

[CODE]
diff -r -u a/dazukofs-3.1.4/dentry.c b/dazukofs-3.1.4/dentry.c
--- a/dazukofs-3.1.4/dentry.c	2010-05-30 06:58:04.000000000 -0400
+++ b/dazukofs-3.1.4/dentry.c	2012-04-25 16:32:41.777027772 -0400
@@ -116,10 +116,11 @@
 {
 	struct dentry *lower_dentry = get_lower_dentry(dentry);

+	struct inode *lower_inode = get_lower_inode(dentry);
 	if (!lower_dentry->d_op || !lower_dentry->d_op->d_hash)
 		return 0;

-	return lower_dentry->d_op->d_hash(lower_dentry, name);
+	return lower_dentry->d_op->d_hash(lower_dentry, lower_inode, name);
 }

 /**
@@ -160,8 +161,9 @@
 {
 	struct dentry *lower_dentry = get_lower_dentry(dentry);

+	struct inode  *lower_inode  = get_lower_inode(dentry->d_inode);
 	if (lower_dentry->d_op && lower_dentry->d_op->d_compare)
-		return lower_dentry->d_op->d_compare(lower_dentry, a, b);
+		return lower_dentry->d_op->d_compare(lower_dentry, lower_inode,
NULL, NULL, 0, a, b);

 	if (a->len != b->len)
 		return 1;
diff -r -u a/dazukofs-3.1.4/super.c b/dazukofs-3.1.4/super.c
--- a/dazukofs-3.1.4/super.c	2010-10-16 12:03:57.000000000 -0400
+++ b/dazukofs-3.1.4/super.c	2012-04-25 16:43:21.621011272 -0400
@@ -160,7 +160,8 @@
 	int err;

 	memset(&nd, 0, sizeof(struct nameidata));
-	err = path_lookup(dev_name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &nd);
+
+	err = kern_path(dev_name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &nd.path);
 	if (err)
 		return err;

@@ -206,7 +207,7 @@
 	struct super_block *sb;
 	int err;

-	err = get_sb_nodev(fs_type, flags, data, dazukofs_fill_super, mnt);
+	err = mount_nodev(fs_type, flags, data, dazukofs_fill_super);
 	if (err)
 		goto out;

@@ -306,7 +307,7 @@
 static struct file_system_type dazukofs_fs_type = {
 	.owner		= THIS_MODULE,
 	.name		= "dazukofs",
-	.get_sb		= dazukofs_get_sb,
+	.mount		= dazukofs_get_sb,
 	/*
 	 * XXX: We are using kill_anon_super() instead of my own function.
 	 *      Is this OK?
[/CODE]