On Tuesday 10 February 2009 07:02:05 Peter Barada wrote: > I pulled a new copy of CVS YAFFS2 just after Charles added his patch for > write_begin/write_end to build YAFFS for 2.6.28 kernels. > <snip> > yaffs locking > yaffs_mknod: making file > yaffs_clear_inode: ino 1489, count 0 object exists > yaffs locking > yaffs_write_super > yaffs_write_super > yaffs_write_super > yaffs_write_super > > It looks like a lookup for "Podgorica" came back as not there, but > creating the object for "Podgorica" needs to clear the inode which tries > to lock it, and YAFFS (and the upper FS layers) are wedged. > > Any ideas on how to fix this? Peter You say you pulled CVS just after I checked in the 2.6.28 stuff. A while later I checked in change to yportenv.h http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/yportenv.h?r1=1.20&r2=1.21 This patch **should** fix what you're seeing.
Still hangs, even with a fresh checkout of YAFFS2 from 19:41 EST (GMT-0500) that incorporates the patch to use GFP_NOFS on YMALLOC() (log from file operation before):
Basically what I think is happening is this: yaffs wants to allocate more memory and calls kmalloc kmalloc prunes the inode cache to free up memory and calls yaffs_clear_inode deadlock The change in yportenv.h tells kmalloc that the call is from within an fs and not to do fs harvesting. Hope that does something for you. -- CHarles
-- Peter Barada <peterb@logicpd.com> |