1 diff -ru linux-2.4.26-1.orig/arch/um/fs/hostfs/externfs.c linux-2.4.26-1.hno/arch/um/fs/hostfs/externfs.c
2 --- linux-2.4.26-1.orig/arch/um/fs/hostfs/externfs.c Mon May 17 23:36:17 2004
3 +++ linux-2.4.26-1.hno/arch/um/fs/hostfs/externfs.c Tue May 18 00:10:42 2004
5 if((mount_arg != NULL) && (*mount_arg != '\0'))
8 - return(uml_strdup(mount_arg));
9 + return(uml_strdup(root));
12 struct super_block *hostfs_read_super(struct super_block *sb, void *data,
13 diff -ru linux-2.4.26-1.orig/arch/um/fs/hostfs/host_file.c linux-2.4.26-1.hno/arch/um/fs/hostfs/host_file.c
14 --- linux-2.4.26-1.orig/arch/um/fs/hostfs/host_file.c Mon May 17 23:36:17 2004
15 +++ linux-2.4.26-1.hno/arch/um/fs/hostfs/host_file.c Tue May 18 11:40:47 2004
18 char tmp[HOSTFS_BUFSIZE], *file;
20 + struct openflags flags = OPENFLAGS();
29 - printk("Impossible mode in host_open_file - r = %d, w = %d",
35 + flags = of_read(flags);
37 + flags = of_write(flags);
40 + flags = of_append(flags);
43 file = get_path(path, tmp, sizeof(tmp));
47 - err = open_filehandle(file, of_create(of_rdwr(OPENFLAGS())), mode, fh);
48 + err = open_filehandle(file, flags, 0, fh);
52 diff -ru linux-2.4.26-1.orig/arch/um/fs/hostfs/host_fs.c linux-2.4.26-1.hno/arch/um/fs/hostfs/host_fs.c
53 --- linux-2.4.26-1.orig/arch/um/fs/hostfs/host_fs.c Mon May 17 23:36:17 2004
54 +++ linux-2.4.26-1.hno/arch/um/fs/hostfs/host_fs.c Tue May 18 11:38:51 2004
57 const char *path[] = { jail_dir, mount, file, NULL };
62 + /* These should be mount flags from an internal "superblock" */
65 return(host_stat_file(path, dev_out, inode_out, mode_out, nlink_out,
66 - &uid, gid_out, size_out, atime_out, mtime_out,
67 + &uid, &gid, size_out, atime_out, mtime_out,
68 ctime_out, blksize_out, blocks_out));
74 err = host_open_file(path, 1, 1, fh);
75 + if (err == -EISDIR) {
80 + err = host_open_file(path, 1, 0, fh);
89 - (*completion)(buf, err, arg);
92 + (*completion)(buf, err, arg);
100 err = write_file(fh, offset + start, buf + start, len);
103 - (*completion)((char *) buf, err, arg);
104 + (*completion)((char *) buf, err, arg);