linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Theodore Tso <tytso@mit.edu>
To: Jamie Lokier <jamie@shareable.org>
Cc: "Jörn Engel" <joern@logfs.org>,
	"Andreas Dilger" <adilger@sun.com>,
	"Christoph Hellwig" <hch@infradead.org>,
	linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,
	akpm@linuxfoundation.org, "Mark Fasheh" <mfasheh@suse.com>,
	mtk.manpages@gmail.com
Subject: Re: [PATCH 1/4] vfs: vfs-level fiemap interface
Date: Wed, 17 Sep 2008 11:25:41 -0400	[thread overview]
Message-ID: <20080917152541.GD10562@mit.edu> (raw)
In-Reply-To: <20080917150212.GD22613@shareable.org>

On Wed, Sep 17, 2008 at 04:02:12PM +0100, Jamie Lokier wrote:
> 
> I'm not clear about something from the above description.
> 
> If I were writing a journalling / tree-like filesystem, and I did
> store data in blocks without encoding, but fsync() only waits for them
> to be committed to journal, not their final destination, and also they
> might be moved around - should I set DATA_ENCODED or not?  (And should
> I return the temporary location in the long-running journal since
> that's the only place the data is committed at the time of the call?)

I can imagine two ways of requiring this.  One would be that you
should only set DATA_ENCODED if you knew that the data had reached its
final destination, possibly with some way of inducing the filesystem
to wait until this had happened.  The other approach would be to
require in the specification that the filesystem would have to be
unmounted at least once.  I prefer the latter as it is much simpler,
and the number of users who actually care about DATA_ENCODED is quite
small.

The other observation I would make is that for filesystems where
"final location" has no meaning (i.e., a log structured filesystem
where its log cleaner is constantly moving data blocks around for
compaction and/or flash wear leveling purposes), it will probably need
to set some bit that means LOCATION_UNSTABLE, as well as setting
DATA_ENCODED.  This is would be a little confusing since what
DATA_ENCODED really means is, "application that might want to read
this file contents on an unmounted filesystem --- think again".  So
maybe a better name would be NO_UNMOUNTED_IO.

							- Ted


P.S.  If such filesystems want to be used by boot loaders that need
fixed bootstrap blocks, they would probably need to have a flag that
pinned the data blocks and caused them not be moved by the log
cleaner.  Reiser3 had to have something like this to work for LILO,
but iirc this was just to disable tail packing.  Same concept, though;
it was a specialized per-filesystem flag that was needed if that
filesystem wanted to be used by a particular boot loader with direct
(unmounted) I/O requirements to access bootstrap code/data.


  reply	other threads:[~2008-09-17 15:25 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-13 18:47 YET ANOTHER resend of the fiemap patches Theodore Ts'o
2008-09-13 18:49 ` [PATCH 1/4] vfs: vfs-level fiemap interface Theodore Ts'o
2008-09-13 18:49   ` [PATCH 2/4] ocfs2: fiemap support Theodore Ts'o
2008-09-13 18:49     ` [PATCH 3/4] generic block based fiemap implementation Theodore Ts'o
2008-09-13 18:49       ` [PATCH 4/4] Hook ext4 to the vfs fiemap interface Theodore Ts'o
2008-09-13 21:17   ` [PATCH 1/4] vfs: vfs-level " Anton Altaparmakov
2008-09-13 21:29     ` Theodore Tso
2008-09-13 21:45       ` Matthew Wilcox
2008-09-13 22:41         ` Theodore Tso
2008-09-13 21:59       ` Anton Altaparmakov
2008-09-14 13:51         ` Christoph Hellwig
2008-09-14 13:48       ` Christoph Hellwig
2008-09-14 17:58         ` Theodore Tso
2008-09-15 14:49           ` Christoph Hellwig
2008-09-15 17:53             ` Mark Fasheh
2008-09-16  6:51               ` Andreas Dilger
2008-09-16 21:31               ` Theodore Tso
2008-09-20 16:47                 ` Josef 'Jeff' Sipek
2008-09-29  1:07                   ` Theodore Tso
2008-09-29 21:13                     ` Mark Fasheh
2008-09-29 22:10                       ` Theodore Tso
2008-09-14 13:47   ` Christoph Hellwig
2008-09-14 18:01     ` Theodore Tso
2008-09-14 18:08       ` Christoph Hellwig
2008-09-14 19:58         ` Theodore Tso
2008-09-15 14:47           ` Christoph Hellwig
2008-09-16  6:49             ` Andreas Dilger
2008-09-16 22:03               ` Theodore Tso
2008-09-17 14:18                 ` Jörn Engel
2008-09-17 15:02                   ` Jamie Lokier
2008-09-17 15:25                     ` Theodore Tso [this message]
2008-09-19 14:05                     ` Chris Mason
2008-09-19 17:38                       ` Jamie Lokier
2008-09-20  7:43                         ` Dave Chinner
2008-09-20 13:50                           ` Chris Mason
     [not found]                           ` <20080920135048.GA15698@think.oraclecorp.com>
2008-09-20 15:36                             ` Jamie Lokier
2008-09-20 15:44                               ` Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2008-10-09  1:48 PATCH [0/4] Updated**3 fiemap patches Theodore Ts'o
     [not found] ` <1223516913-17612-1-git-send-email-tytso-3s7WtUTddSA@public.gmane.org>
2008-10-09  1:48   ` [PATCH 1/4] vfs: vfs-level fiemap interface Theodore Ts'o
2008-10-07  1:06 PATCH [0/4] Updated**2 fiemap patches Theodore Ts'o
2008-10-07  1:06 ` [PATCH 1/4] vfs: vfs-level fiemap interface Theodore Ts'o
     [not found]   ` <1223341581-13802-2-git-send-email-tytso-3s7WtUTddSA@public.gmane.org>
2008-10-07  1:09     ` Theodore Tso
2008-10-03 21:59 [PATCH 0/4] Updated fiemap patches Theodore Ts'o
2008-10-03 21:59 ` [PATCH 1/4] vfs: vfs-level fiemap interface Theodore Ts'o
2008-10-04  2:12   ` Theodore Tso
2008-10-06 18:15     ` jim owens
2008-10-06 21:07       ` Theodore Tso
2008-10-07 10:12         ` Christoph Hellwig
2008-10-07 10:56           ` Andreas Dilger
2008-10-07 12:52             ` Theodore Tso
2008-10-07 13:00           ` Jamie Lokier
2008-10-07 13:02             ` Christoph Hellwig
2008-10-07 13:24               ` Jamie Lokier
2008-10-07 13:28                 ` Christoph Hellwig
2008-10-07 15:45                   ` Theodore Tso
2008-10-07 16:01                     ` jim owens
     [not found]                       ` <48EB87DE.4090607-VXdhtT5mjnY@public.gmane.org>
2008-10-07 18:52                         ` Theodore Tso
     [not found]                           ` <20081007185219.GD15929-3s7WtUTddSA@public.gmane.org>
2008-10-07 20:31                             ` Christoph Hellwig
2008-10-07 13:48             ` Theodore Tso
2008-10-07 23:43               ` Jamie Lokier
2008-10-09 20:40                 ` Andreas Dilger
2008-10-06 13:07   ` steve
2008-06-25 22:18 Mark Fasheh

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=20080917152541.GD10562@mit.edu \
    --to=tytso@mit.edu \
    --cc=adilger@sun.com \
    --cc=akpm@linuxfoundation.org \
    --cc=hch@infradead.org \
    --cc=jamie@shareable.org \
    --cc=joern@logfs.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=mfasheh@suse.com \
    --cc=mtk.manpages@gmail.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;
as well as URLs for NNTP newsgroup(s).