This is the mail archive of the ecos-bugs@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1000539] fatfs chdir("..") broken


http://bugzilla.ecoscentric.com/show_bug.cgi?id=1000539





--- Comment #3 from Andrew Lunn <andrew.lunn@ascom.ch>  2008-05-03 14:49:56 ---
I spent a few hours looking at this and how other FS handle .. entries. When
the filesystem is inode based, it all works nicely. The find_direntry()
function returns the directory entry for ".." and then you follow the inode
reference to the actual node. This inode reference for . and .. points to where
you expect.

However FAT don't have the concept of an inode. find_direntry returns the
directory entry, which exist for . and .. and that entry is used itself. 

It looks like . and .. needed to be treated special in find_direntry(). . is
easy, it is a NOP. However i cannot figure out how to handle the .. case. How
do i find the parent? I know the cluster the parent is in, but where about in
the cluster is it? 

Nick, could you give me some clues from the eCosCentric code?

BTW: The on disk format seems O.K. I did some tests creating a directory,
unmounting and then testing the disk image with both mdir and fsck.msdos with a
block look device.


-- 
Configure bugmail: http://bugzilla.ecoscentric.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]