All,
We had a problem perhaps similar, The problem was associated to the READDIR+
NFS V3 command, which recursively explores the sub-directories, trying to lock
for the sub-directories the semaphore that was already locked for the first
directory, causing a deadlock of the NFS server.
This problem was solved by another engineer with the next modification (not very
clean!!):
cvs diff fs/yaffs2/yaffs_fs.c
Index: fs/yaffs2/yaffs_fs.c
===================================================================
RCS file: linux-2.6.16/fs/yaffs2/yaffs_fs.c,v
retrieving revision 1.4
diff -r1.4 yaffs_fs.c
313c313,314
< yaffs_GrossLock(dev);
---
> if (current != dev->readdirProcess)
> yaffs_GrossLock(dev);
324a326
>
326c328,329
< yaffs_GrossUnlock(dev);
---
> if (current != dev->readdirProcess)
> yaffs_GrossUnlock(dev);
816a820
> dev->readdirProcess = current ;
885a890
> dev->readdirProcess = NULL ;
1288c1293,1294
< yaffs_GrossLock(dev);
---
> if (current != dev->readdirProcess)
> yaffs_GrossLock(dev);
1294c1300,1301
< yaffs_GrossUnlock(dev);
---
> if (current != dev->readdirProcess)
> yaffs_GrossUnlock(dev);
cvs diff fs/yaffs2/yaffs_guts.h
Index: fs/yaffs2/yaffs_guts.h
===================================================================
RCS file: linux-2.6.16/fs/yaffs2/yaffs_guts.h,v
retrieving revision 1.1
diff -r1.1 yaffs_guts.h
655a656,657
> struct task_struct *readdirProcess;
>
cvs diff include/linux/jffs2_fs_i.h
Index: include/linux/jffs2_fs_i.h
===================================================================
RCS file: linux-2.6.16/include/linux/jffs2_fs_i.h,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 jffs2_fs_i.h
18c18
<
---
> struct task_struct *readdir_process;
If this patch could be helpfull
Best regards
Olivier
Selon Henrik Grindal Bakken <
hgb@ifi.uio.no>:
> Charles Manning <manningc2@actrix.gen.nz> writes:
>
> > On Tuesday 12 February 2008 01:50:45 Henrik Grindal Bakken wrote:
> >> This, as it happens, works to an extent. If I mount read-write, it
> >> hangs, if I mount read-only, it works, but only up to one or two
> >> clients. I'm not entirely certain where stuff hangs, but at least
> >> it hangs to the extent that searching $PATH for anything on
> >> /mnt/base hangs forever.
> >>
> >> It appears to me that nfs-exporting yaffs filesystems is shaky at
> >> best. Is this something anyone does or has any experience with?
> >
> > What kind of problems are you seeing?
>
> The mount command hangs, and accessing the yaffs filesystem on the nfs
> server hangs as well. Processes go into uninterruptable sleep. Looks
> like your typical unreachable nfs server problems, but one major
> difference is that this happens on the server as well. I would
> imagine that the problems on the client come because the server hangs
> on accessing the yaffs filesystem.
>
>
> --
> Henrik Grindal Bakken <hgb@ifi.uio.no>
> PGP ID: 8D436E52
> Fingerprint: 131D 9590 F0CF 47EF 7963 02AF 9236 D25A 8D43 6E52
>
>
> _______________________________________________
> yaffs mailing list
> yaffs@lists.aleph1.co.uk
> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>