From: Kieran B. <kie...@gm...> - 2009-09-11 11:38:29
|
Miklos Szeredi wrote: > On Thu, 03 Sep 2009, Kieran Bingham wrote: > >> Hi Guys, >> >> I've been putting together some test code on my x86, which all works fine. >> I want this code to run on a 2.6.18 kernel on an arm board. >> >> I've made sure the 2.6.18 kernel has fuse module built in, but when I >> fusexmp on it - I get various lock ups :( >> It all works fine if I run the latest GIT kernel on the board, but not >> 2.6.18 - so I think theres maybe API changes between the two. >> > > All the APIs are designed to be backward compatible, so any mix of > kernel version and library version *should* work. > > >> using GDB it looks like in this instance its an issue with >> dm365evm/src/fuse-2.7.4/lib/fuse.c:2046 >> 2041 static struct fuse_dh *get_dirhandle(const struct fuse_file_info >> *llfi, >> 2042 struct fuse_file_info *fi) >> 2043 { >> 2044 struct fuse_dh *dh = (struct fuse_dh *) (uintptr_t) >> llfi->fh; >> 2045 memset(fi, 0, sizeof(struct fuse_file_info)); >> 2046 fi->fh = dh->fh; >> 2047 fi->fh_old = dh->fh; >> 2048 return dh; >> 2049 } >> (gdb) p /x llfi->fh >> $9 = 0xa8ee800000000 >> > > This is pretty weird, apparently it segfaults on the RELEASEDIR. > > The release request was changed between API versions 7.7 and 7.8, but > only new fields were added at the end, which shouldn't affect the > value of fi->fh. But it is suggestive that the low 4 bytes of the > file handle have been zeroed out. Perhaps the compilier is doing some > weird paddig of structure fields? > > To see if the kernel is sending the correct data, could you please > run it with strace: > > strace -o /tmp/strace -eread=all -ewrite=all fusexmp -f -s ~/mnt/fuse > > and send me the result? > > Thanks, > Miklos > > Hi Miklos - thanks for your reply, I think this issue has faded away now. Rather than use the fuse-module source provided with the 2.6.18 kernel, I now build the fuse module separately within the fuse-source - giving it the kernel sources as a configure option. This produces a standalone fuse.ko which I am able to modprobe and the above issues have not occured since using this. I have got problems unmounting though, as mentioned in my earlier e-mail. But I'm guessing there was something in the old code that was changed. I'm not really going to look into it now that I can actually mount and mostly use the fuse filesystem on the target. Not being able to unmount is my next priority :) -- Regards Kieran Bingham |