[parisc-linux] Re: [fuse-devel] [PATCH] Fixs to work on ARM and PARIC platforms.

Miklos Szeredi miklos at szeredi.hu
Sat Apr 1 09:35:38 MST 2006


> 1.  The rwlock tree_lock  in struct fuse was not properly initialized using
> pthread_rwlock_init().    This normally works on other archs (besides
> PARISC) since the lock can be initialized to 0 values, this is not true on
> the PARISC platform ... these locks must be initialized properly to work on
> PARISC.

Good find, thanks.

The initialization should actually look like this:

  pthread_rwlock_init(&f->tree_lock, NULL);

I can't imagine how your version managed to work...

> 2. I had to add an additional cache flush in the fuse_copy_do function.  On
> both ARM and PARISC, the data was corrupted unless cache is flushed first.
> Unfortunately I hit it with a very big hammer (flush_cache_all) ... I am
> hoping someone more familiar with the caches will suggest a better flush
> function to use.  I tried to use the flush_kernel_dcache_page and
> flush_dcache_page functions without any luck :(

You should try using the parisc patchset from:

   http://cvs.parisc-linux.org/download/linux-2.6/

and replace flush_dcache_page() with flush_kernel_dcache_page() in
FUSE source.

Thanks,
Miklos



More information about the parisc-linux mailing list