--- /dev/null
+--- shfs-0.35/shfs/Linux-2.6/dir.c.orig 2004-06-01 15:16:19.000000000 +0200
++++ shfs-0.35/shfs/Linux-2.6/dir.c 2005-03-16 18:52:03.000000000 +0100
+@@ -19,6 +19,8 @@
+ #include "shfs_debug.h"
+ #include "proc.h"
+
++static struct dentry_operations shfs_dentry_operations;
++
+ static int
+ shfs_dir_open(struct inode *inode, struct file *filp)
+ {
+--- shfs-0.35/shfs/Linux-2.6/shfs_fs.h.orig 2004-06-01 15:16:19.000000000 +0200
++++ shfs-0.35/shfs/Linux-2.6/shfs_fs.h 2005-03-16 18:52:03.000000000 +0100
+@@ -50,7 +50,6 @@
+ #define ROUND_TO_MINS(x) do { (x).tv_sec = ((x).tv_sec / 60) * 60; (x).tv_nsec = 0; } while (0)
+
+ /* shfs/dir.c */
+-extern struct dentry_operations shfs_dentry_operations;
+ extern struct file_operations shfs_dir_operations;
+ extern struct inode_operations shfs_dir_inode_operations;
+ extern void shfs_new_dentry(struct dentry *dentry);
--- /dev/null
+--- shfs-0.35/shfs/Linux-2.4/shell.c.orig 2005-03-16 18:45:45.000000000 +0100
++++ shfs-0.35/shfs/Linux-2.4/shell.c 2005-03-16 18:46:56.000000000 +0100
+@@ -213,6 +213,7 @@
+ int c = 0;
+ int is_space = 1;
+ int device = 0;
++ char *start = s;
+
+ while (*s) {
+ if (c == DIR_COLS)
+@@ -227,17 +228,20 @@
+ s++;
+ }
+ *s = '\0';
++ start = s+1;
+ is_space = 1;
++ } else {
++ if (c != DIR_NAME)
++ start = s+1;
+ }
+ } else {
+ if (is_space) {
+ /* (b)lock/(c)haracter device hack */
+- col[c++] = s;
++ col[c++] = start;
+ is_space = 0;
+ if ((c-1 == DIR_PERM) && ((*s == 'b')||(*s == 'c'))) {
+ device = 1;
+ }
+-
+ }
+ }
+ s++;
+--- shfs-0.35/shfs/Linux-2.6/shell.c.orig 2005-03-16 18:45:45.000000000 +0100
++++ shfs-0.35/shfs/Linux-2.6/shell.c 2005-03-16 18:46:56.000000000 +0100
+@@ -225,6 +225,7 @@
+ int c = 0;
+ int is_space = 1;
+ int device = 0;
++ char *start = s;
+
+ while (*s) {
+ if (c == DIR_COLS)
+@@ -239,17 +240,20 @@
+ s++;
+ }
+ *s = '\0';
++ start = s+1;
+ is_space = 1;
++ } else {
++ if (c != DIR_NAME)
++ start = s+1;
+ }
+ } else {
+ if (is_space) {
+ /* (b)lock/(c)haracter device hack */
+- col[c++] = s;
++ col[c++] = start;
+ is_space = 0;
+ if ((c-1 == DIR_PERM) && ((*s == 'b')||(*s == 'c'))) {
+ device = 1;
+ }
+-
+ }
+ }
+ s++;
--- /dev/null
+--- shfs-0.35/shfs/Linux-2.4/shfs_fs_sb.h.orig 2004-06-01 15:16:19.000000000 +0200
++++ shfs-0.35/shfs/Linux-2.4/shfs_fs_sb.h 2005-03-16 18:50:05.000000000 +0100
+@@ -38,10 +38,10 @@
+ struct shfs_fileops fops;
+ int version;
+ int ttl;
+- __kernel_uid_t uid;
+- __kernel_gid_t gid;
+- __kernel_mode_t root_mode;
+- __kernel_mode_t fmask;
++ uid_t uid;
++ gid_t gid;
++ mode_t root_mode;
++ mode_t fmask;
+ char mount_point[SHFS_PATH_MAX];
+ struct semaphore sock_sem; /* next 4 vars are guarded */
+ struct file *sock;
+--- shfs-0.35/shfs/Linux-2.6/shfs_fs_sb.h.orig 2004-06-01 15:16:19.000000000 +0200
++++ shfs-0.35/shfs/Linux-2.6/shfs_fs_sb.h 2005-03-16 18:50:05.000000000 +0100
+@@ -38,10 +38,10 @@
+ struct shfs_fileops fops;
+ int version;
+ int ttl;
+- __kernel_uid_t uid;
+- __kernel_gid_t gid;
+- __kernel_mode_t root_mode;
+- __kernel_mode_t fmask;
++ uid_t uid;
++ gid_t gid;
++ mode_t root_mode;
++ mode_t fmask;
+ char mount_point[SHFS_PATH_MAX];
+ struct semaphore sock_sem; /* next 4 vars are guarded */
+ struct file *sock;