[Yaffs] An observation about "useHeaderFileSize" !

Charles Manning manningc2@actrix.gen.nz
Mon, 7 Feb 2005 10:51:32 +1300


The useHeaderFileSize flag controls how the file size is calculated durin=
g=20
scanning etc.

For YAFFS1 you have the option of using the header file size (ie those=20
recorded in the objectheaders) or the size calculated by scanning.  Becau=
se=20
YAFFS1 marks discarded chunks it is possible to fully recreate file sizes=
=20
without looking at the file header information.

YAFFS2 does not discard data (mark it deleted), so when YAFFS2 scans it m=
ust=20
look at file headers to track file size changes. That is why the=20
useHeaderFileSize is forced on in the GutsInitialise. If you defeat this =
then=20
YAFFS2 file sizes will be wrong.

What I meant when I said that this option was not useful in YAFFS2 was th=
at=20
you should not adjust it for YAFFS2. ie. For YAFFS2 it is not something t=
hat=20
is an option you can play with. It is only something you can play with fo=
r=20
YAFFS1.


-- CHarles



On Friday 04 February 2005 17:46, Abhishek Bhattacharya wrote:
> Hi
>
> If
> if(dev->isYaffs2)
> {
> dev->useHeaderFileSize =3D 1;
> }
> is true, in that case, oh->fileSize doesnot get the actual file size.
> Thus object's file size remains as 0. While scanning , yaffs2 assigns
> the
> Size of the file to scannedFileSize. And then the next condition is
>
> 	else if(tags.chunkId > 0)
> 	{
> 	///code
> 		if(!dev->useHeaderFileSize)
> 		{
> 			in->variant.fileVariant.fileSize =3D=20
>=20
> in->variant.fileVariant.scannedFileSize;
> 		}
> 	///code
> 	}
>
> And last but not the least
> "The useHeaderFileSize option is only useful for YAFFS1"
> "Defeat this and YAFFS2 will break" ... Could you kindly throw some mor=
e
> Light on that please? I feel these two statements slightly contradict.
>
> Regards
> Abhishek
>
>
> -----Original Message-----
> From: Charles Manning [mailto:manningc2@actrix.gen.nz]
> Sent: Friday, February 04, 2005 6:02 AM
> To: Abhishek Bhattacharya; yaffs@stoneboat.aleph1.co.uk
> Subject: Re: [Yaffs] An observation about "useHeaderFileSize" !
>
> >The useHeaderFileSize option is only useful for YAFFS1.
> >
> >YAFFS2 needs to use this otherwise various things break.
> >For this reason, yaffs_GutsInitialise forces this on for YAFFS2 in the
>
> the following lines:
> >if(dev->isYaffs2)
> >{
> >dev->useHeaderFileSize =3D 1;
> >}
> >
> >Defeat this and YAFFS2 will break.
>
> On Friday 04 February 2005 01:08, Abhishek Bhattacharya wrote:
> >> Hello Yaffs ers and Charles
> >>
> >> I want to report an observation I had when testing Yaffs2 direct
> >> interface. In yaffs2 we have the option of "useHeaderFileSize".
> >> Now in yaffs_Scan() , after we scan all blocks, we check if "yaffs2"
> >> option is enabled or not.
> >>
> >> If yaffs2 is enabled we make dev->useHeaderFileSize =3D 1. Upon
>
> enabling
>
> >> this, the expected result would be , that object would get the file
> >> size from object header, and not from scanned file size.
> >>
> >> Now when we do dumpDir(const char* path), my observation was that ,
>
> it
>
>  shows all the files , but sizes are shown as 0.
>
> >>
> >> At this point , I tried to make dev->useHeaderFileSize =3D 0. So now=
 ,
> >> we directly assign the object's scanned file size to object's file
> >> size and VOILA!!! Everything seems to work fine. This time
> >> dumpDir(const char* path) returns all the files with there respectiv=
e
> >>
> >> sizes!!!
> >>
> >> Please let me know if you have encountered any such issues!
> >>
> >> Thanks
> >>
> >> Abhishek
> >>
>
> ***********************************************************************=
****
>************************************************************************=
****
>***
>
> This email message is for the sole use of the intended recipient(s)and =
may
> contain CONFIDENTIAL and PRIVILEGED information. LG Soft India will not=
 be
> responsible for any viruses or defects or any forwarded attachments
> emanating either from within LG Soft India or outside. Any unauthorized
> review, use, disclosure or distribution is prohibited. If you are not t=
he
> intended recipient, please contact the sender By reply email and destro=
y
> all copies of the original message.
>
> ***********************************************************************=
****
>************************************************************************=
****
>***
>
> _______________________________________________
> yaffs mailing list
> yaffs@stoneboat.aleph1.co.uk
> http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs