public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
To: syed khader <khader_s_s@yahoo.com>
Cc: linux-mtd@lists.infradead.org
Subject: Re: CRC errors when continuous fseek/fputs on JFFS2
Date: Mon, 15 May 2006 17:46:06 +0200	[thread overview]
Message-ID: <20060515154606.GB10730@wohnheim.fh-wedel.de> (raw)
In-Reply-To: <20060515151556.21775.qmail@web37902.mail.mud.yahoo.com>

On Mon, 15 May 2006 08:15:56 -0700, syed khader wrote:
>
>    I am finding this strange problem.
> I am running the following piece of code :
> 
> int main()
> {
>    FILE *fp;
>    int i;
>    fp = fopen("/var/mnt/testfile","w");
>    for(i =0 ; i < 100000 ; i++)
>    {
>    fputs("xxxx", fp);
>    fseek(fp, -4, SEEK_CUR);
               ^^
>    fputs("xx", fp);
>   }
>    fclose(fp);
> }
> 
>   JFFS2 is mounted on /var/mnt. While the program is
> running I am getting CRC errors like this:
> 
> Data CRC 6c48916e != calculated CRC 11ebde1b for node
> at 000e0a68
>   
>    If  I am not doing fseek above and just add writing
> to file in the loop I dont see any CRC errors.
>    Pleae let me know what is happening here. Is JFFS2
> running out of buffers or something?

fopen(...,"w") will set fpos to 0.  fseek(..., -4, SEEK_CUR) then sets
it _back_.  I would assume that an integer underflow happens next and
fpos is close to 2^31, 2^32, 2^63 or 2^64.  What is certain is that
your testcase is not a valid piece of code.

Can you try to change your testcase in two ways:
o replace fopen/fseek/fwrite etc. with open/seek/write etc.
o seek to something large directly after open
and retest with that?

"something large" should be one of 2^31-1, 2^32-1, 2^63-1 or 2^64-1, I
believe.

Jörn

-- 
Measure. Don't tune for speed until you've measured, and even then
don't unless one part of the code overwhelms the rest.
-- Rob Pike

  reply	other threads:[~2006-05-15 15:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-15 15:15 CRC errors when continuous fseek/fputs on JFFS2 syed khader
2006-05-15 15:46 ` Jörn Engel [this message]
2006-05-15 15:57   ` Jörn Engel
     [not found] <20060516061354.GA18958@wohnheim.fh-wedel.de>
2006-05-16 12:40 ` syed khader
2006-05-16 14:26   ` Jörn Engel
2006-05-16 15:01     ` syed khader
2006-05-16 15:31       ` Jörn Engel
2006-05-17  5:12         ` syed khader

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060515154606.GB10730@wohnheim.fh-wedel.de \
    --to=joern@wohnheim.fh-wedel.de \
    --cc=khader_s_s@yahoo.com \
    --cc=linux-mtd@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox