Compiling and installing the patch remotely while writing this, but I can test it with both client and server tomorrow, about 20 hrs from now. I'll let you know the results.

With kind regards,
Oliver Korpilla

Vladimir Saveliev wrote:

Either this is a NFSv3/Reiser4/2.6.8.1 server vs. NFSv3/2.4.21 client problem,
or it has something to do with endianness (PowerPC is big-endian, Intel P4 box
is little-endian). I know ext* has absolutely no issues with endianness, neither
as RAM disk nor over NFS, but perhaps Reiser4 has?


Yes, that could be a problem.
Would you please try to patch reiser4/vfs_ops.c with the attached patch
and let us know whether it makes any effect?



===== vfs_ops.c 1.732 vs edited =====
--- 1.732/vfs_ops.c     2004-08-30 17:05:53 +04:00
+++ edited/vfs_ops.c    2004-09-07 15:38:55 +04:00
@@ -1564,12 +1564,16 @@
        addr = (char *)data;

        need = encode_inode_size(inode);
-       if (need < 0)
+       if (need < 0) {
+               printk("reiser4_encode_fh-1: need=%d\n", need);
                return NFSERROR;
+       }
        if (need_parent) {
                delta = encode_inode_size(parent);
-               if (delta < 0)
+               if (delta < 0) {
+                       printk("reiser4_encode_fh-2: delta=%d\n", delta);
                        return NFSERROR;
+               }
                need += delta;
        }

@@ -1584,9 +1588,11 @@
* handle. */
*lenp = (need + sizeof(__u32) - 1) >> 2;
result = need_parent ? FH_WITH_PARENT : FH_WITHOUT_PARENT;
- } else
+ } else {
/* no enough space in file handle */
+ printk("reiser4_encode_fh-3: need=%d, lenp=%d\n", need, *lenp);
result = NFSERROR;
+ }
reiser4_exit_context(&context);
return result;
}





Reply via email to