From: Miklos Szeredi <miklos@szeredi.hu>

This patch fixes a bug in link, where the wrong inode number was passed to
userspace as the link source.

Needs update to fuse library to 2.2-pre6 as well.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/fs/fuse/dir.c        |    4 ++--
 25-akpm/include/linux/fuse.h |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff -puN fs/fuse/dir.c~fuse-read-write-operations-fix fs/fuse/dir.c
--- 25/fs/fuse/dir.c~fuse-read-write-operations-fix	2005-01-26 17:26:14.795189056 -0800
+++ 25-akpm/fs/fuse/dir.c	2005-01-26 17:26:14.799188448 -0800
@@ -360,9 +360,9 @@ static int fuse_link(struct dentry *entr
 		return -ERESTARTNOINTR;
 
 	memset(&inarg, 0, sizeof(inarg));
-	inarg.newdir = get_node_id(newdir);
+	inarg.oldnodeid = get_node_id(inode);
 	req->in.h.opcode = FUSE_LINK;
-	req->inode2 = newdir;
+	req->inode2 = inode;
 	req->in.numargs = 2;
 	req->in.args[0].size = sizeof(inarg);
 	req->in.args[0].value = &inarg;
diff -puN include/linux/fuse.h~fuse-read-write-operations-fix include/linux/fuse.h
--- 25/include/linux/fuse.h~fuse-read-write-operations-fix	2005-01-26 17:26:14.796188904 -0800
+++ 25-akpm/include/linux/fuse.h	2005-01-26 17:26:14.800188296 -0800
@@ -124,7 +124,7 @@ struct fuse_rename_in {
 };
 
 struct fuse_link_in {
-	__u64	newdir;
+	__u64	oldnodeid;
 };
 
 struct fuse_setattr_in {
_