From: Jamie Lokier <jamie@shareable.org>
To: Josh Boyer <jwboyer@gmail.com>
Cc: linux-mtd@lists.infradead.org, Jeff S <jsolman33@yahoo.com>
Subject: Re: JFFS2 determine writing state
Date: Tue, 15 Jan 2008 14:08:00 +0000 [thread overview]
Message-ID: <20080115140759.GE11941@shareable.org> (raw)
In-Reply-To: <20080112141508.22b19686@vader.jdub.homelinux.org>
Josh Boyer wrote:
> On Sat, 12 Jan 2008 10:03:43 +0000 Jamie Lokier <jamie@shareable.org> wrote:
>
> > Josh Boyer wrote:
> > > The open call doesn't cause any writes, and close
> > > is supposed to flush all pending writes before it returns.
> >
> > Oh, that's interesting. So on JFFS2, fsync() is unnecessary
> > before close()?
> >
> > (On other filesystems it's necessary, of course).
>
> To be honest, it doesn't really matter if it's necessary or not.
> Writing an application to do as little as possible based on implicit
> knowledge of the underlying filesystem seems like a really bad idea.
> Particularly with the behavior of the filesystem can change based on
> which config options you have set (writebuffer, etc).
>
> Write you applications to be portable and cautious and you shouldn't
> have a problem.
That's quite reasonable and of course I do call fsync, both on a file
before closing it, and then on its parent directory after renaming a
replacement file into place (just like usual mail software).
But the particular fs behaviour is relevant the other way around: I
have a program which calls open/write/close with small writes
moderately often (because it calls another program which actually
operates on the file).
If JFFS2 commits pending writes on every close, I should change things
to keep the file open between writes so they are coalesced and faster,
when I don't need the individual writes to be committed separately.
When I do need the data committed I can use fsync of course.
In which case, if a program A opens a file on JFFS2, and forks/execs
program B which writes data, then does an implicit close (when it
exits), while B's writes be committed immediately (which isn't wanted)
even though A still has the descriptor open?
Thanks,
-- Jamie
next prev parent reply other threads:[~2008-01-15 15:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-10 23:38 JFFS2 determine writing state Jeff S
2008-01-11 13:57 ` Josh Boyer
2008-01-12 10:03 ` Jamie Lokier
2008-01-12 20:15 ` Josh Boyer
2008-01-15 14:08 ` Jamie Lokier [this message]
2008-01-15 16:50 ` Jörn Engel
2008-01-15 17:35 ` Jamie Lokier
2008-01-15 19:16 ` Jörn Engel
2008-01-15 21:51 ` Jamie Lokier
2008-01-15 23:26 ` Jörn Engel
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=20080115140759.GE11941@shareable.org \
--to=jamie@shareable.org \
--cc=jsolman33@yahoo.com \
--cc=jwboyer@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.