From: Miklos Szeredi 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 Signed-off-by: Andrew Morton --- 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 { _