Hervé Poussineau schrieb:
hbirr(a)svn.reactos.com a écrit :
- Fixed the directory index of a file for FATX. +
ULONG
startIndex = rcFcb->startIndex;
+ if ((rcFcb->Flags & FCB_IS_FATX_ENTRY) && !vfatFCBIsRoot(Parent))
{
+ startIndex += 2;
+ }
+ if(startIndex >= DirContext->DirIndex)
+ {
This change looks suspicious to me.
"." and ".." don't exist on a FATX volume. They are FAT12/16/32
specific.
Please revert related changes in create.c, dirw.c, direntry.c, fcb.c
Hervé
PS:
Comment in direntry.c ("need to add . and .. entries".) is not very
clear. It may be modified to "Need to add . and .. entries, because
they don't exist in a FATX subdir"
_______________________________________________
Ros-diffs mailing list
Ros-diffs(a)reactos.com
http://reactos.com:8080/mailman/listinfo/ros-diffs
FATX doesn't have real '.' and '..' directories. But we use
them on each
directory except the root. The index from fcb is also used to update the
entry of a file in its parent directory. For looking for a directory,
'.' has index 0, '..' has index 1 and 'foo' has index 2 and so
on. The
real index of 'foo' is 0. We must make a difference between the real and
the search index. I've modified some parts of freeldr and usetup. I can
create and install ros on a fatx partition on a normal pc. I've also
load vfatfs on W2K. At the beginning, the wrong index has scrambled the
fatx partition.
- Hartmut
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.com
http://reactos.com:8080/mailman/listinfo/ros-dev
Yeah, I know that FATX doesn't have real '.' and '..' directories, and
I
understand the difference between startIndex and realIndex.
After looking more carefully at your patches, I see that your changes
are right. Sorry to have bothered you...
BTW, congratulations for you work on vfatfs on Windows 2000!
Hervé