From: Paolo 'Blaisorblade' Giarrusso Some time ago a trivial patch broke HPPFS (one var became a pointer, not all uses were updated). It wasn't fixed at that time because not very used, now it's been requested so I've fixed this, and it has been tested positively (at least partially). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton --- arch/um/Kconfig | 6 +++--- fs/hppfs/hppfs_kern.c | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff -puN arch/um/Kconfig~uml-restore-hppfs-support arch/um/Kconfig --- 25/arch/um/Kconfig~uml-restore-hppfs-support Wed Jul 6 13:20:19 2005 +++ 25-akpm/arch/um/Kconfig Wed Jul 6 13:20:19 2005 @@ -128,7 +128,6 @@ config HOSTFS config HPPFS tristate "HoneyPot ProcFS (EXPERIMENTAL)" - depends on BROKEN help hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc entries to be overridden, removed, or fabricated from the host. @@ -141,8 +140,9 @@ config HPPFS You only need this if you are setting up a UML honeypot. Otherwise, it is safe to say 'N' here. - If you are actively using it, please ask for it to be fixed. In this - moment, it does not work on 2.6 (it works somehow on 2.4). + If you are actively using it, please report any problems, since it's + getting fixed. In this moment, it is experimental on 2.6 (it works on + 2.4). config MCONSOLE bool "Management console" diff -puN fs/hppfs/hppfs_kern.c~uml-restore-hppfs-support fs/hppfs/hppfs_kern.c --- 25/fs/hppfs/hppfs_kern.c~uml-restore-hppfs-support Wed Jul 6 13:20:19 2005 +++ 25-akpm/fs/hppfs/hppfs_kern.c Wed Jul 6 13:20:19 2005 @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -491,7 +492,7 @@ static int hppfs_open(struct inode *inod fd = open_host_sock(host_file, &filter); if(fd > 0){ data->contents = hppfs_get_data(fd, filter, - &data->proc_file, + data->proc_file, file, &data->len); if(!IS_ERR(data->contents)) data->host_fd = fd; @@ -543,7 +544,7 @@ static int hppfs_dir_open(struct inode * static loff_t hppfs_llseek(struct file *file, loff_t off, int where) { struct hppfs_private *data = file->private_data; - struct file *proc_file = &data->proc_file; + struct file *proc_file = data->proc_file; loff_t (*llseek)(struct file *, loff_t, int); loff_t ret; @@ -586,7 +587,7 @@ static int hppfs_filldir(void *d, const static int hppfs_readdir(struct file *file, void *ent, filldir_t filldir) { struct hppfs_private *data = file->private_data; - struct file *proc_file = &data->proc_file; + struct file *proc_file = data->proc_file; int (*readdir)(struct file *, void *, filldir_t); struct hppfs_dirent dirent = ((struct hppfs_dirent) { .vfs_dirent = ent, _