From: "Artem B. Bityuckiy" <dedekind@yandex.ru>
To: Sergei Sharonov <sergei.sharonov@halliburton.com>
Cc: linux-mtd@lists.infradead.org
Subject: Re: atomic file operations
Date: Thu, 24 Mar 2005 13:53:16 +0300 [thread overview]
Message-ID: <42429C1C.8050600@yandex.ru> (raw)
In-Reply-To: <4242925F.D29BC7CE@st.com>
Estelle HAMMACHE wrote:
> Yes, when I write that the input buffer is split it means that
> several data nodes are written to the flash - each data node
> is an independent piece of data complete with header and CRC.
> If a data node is only partly written to flash, its CRC check
> will fail so the partial data will not be taken into account
> when building the file at next mount. In this sense each data
> node is an atomic write - but JFFS2 does not guarantee that
> a write() input buffer will be written as a single data node.
But if you:
1. write only 0-PAGE_SIZE bytes;
2. do not overlap n*PAGE_SIZE borders (n is 1,2, ...)
3. do fsync after write.
then you have the guarantee that you either have written all or
nowthing. JFFS2 does guarantee that due to its implementation.
To put it differently, write by small peaces, and do not overlap page
boundaries, and do fsync, and be happy with an atomic writes :-)
Examples:
(assume PAGE_SIZE is 4K)
write 4K to offset 16K is OK
write 1 byte anywhere is OK
write 10 bytes at offset 4095 is not OK.
HTH.
--
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
next prev parent reply other threads:[~2005-03-24 10:53 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-22 21:57 atomic file operations Sergei Sharonov
2005-03-23 9:39 ` Estelle HAMMACHE
2005-03-23 20:50 ` Sergei Sharonov
2005-03-24 10:11 ` Estelle HAMMACHE
2005-03-24 10:53 ` Artem B. Bityuckiy [this message]
2005-03-24 11:59 ` Estelle HAMMACHE
2005-03-24 12:17 ` Artem B. Bityuckiy
2005-03-24 17:28 ` Sergei Sharonov
2005-03-24 19:32 ` Artem B. Bityuckiy
2005-03-24 22:00 ` David Woodhouse
2005-03-25 8:18 ` Artem B. Bityuckiy
2005-03-24 21:59 ` David Woodhouse
2005-03-25 16:18 ` Sergei Sharonov
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=42429C1C.8050600@yandex.ru \
--to=dedekind@yandex.ru \
--cc=linux-mtd@lists.infradead.org \
--cc=sergei.sharonov@halliburton.com \
/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