All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Dilger <adilger@sun.com>
To: Mark Fasheh <mark.fasheh@oracle.com>
Cc: linux-fsdevel@vger.kernel.org, David Chinner <dgc@sgi.com>,
	linux-ext4@vger.kernel.org, xfs@oss.sgi.com, hch@infradead.org,
	Anton Altaparmakov <aia21@cam.ac.uk>,
	Mike Waychison <mikew@google.com>,
	ocfs2-devel@oss.oracle.com
Subject: Re: [RFC] add FIEMAP ioctl to efficiently map file allocation
Date: Mon, 29 Oct 2007 18:25:59 -0600	[thread overview]
Message-ID: <20071030002559.GH3042@webber.adilger.int> (raw)
In-Reply-To: <20071030001126.GD28607@ca-server1.us.oracle.com>

On Oct 29, 2007  17:11 -0700, Mark Fasheh wrote:
> On Mon, Oct 29, 2007 at 04:13:02PM -0600, Andreas Dilger wrote:
> > > Btrfs, Ocfs2, and Gfs2 pack small amounts of user data directly in inode
> > > blocks.
> > 
> > Hmm, but part of the issue would be how to request the extra data, and
> > what offset it would be given?  One could, for example, use negative
> > offsets to represent metadata or something, or add a FIEMAP_EXTENT_META
> > or similar, I hadn't given that much thought.
> 
> Well, fe_offset and fe_length are already expressed in bytes, so we could
> just put the byte offset to where the inline data starts in there. fe_length
> is just used as the length allocated for inline-data.
> 
> If fe_offset is required to be block aligned, then we could add a field to
> express an offset within the block where data would be found - say
> 'fe_data_start_offset'. In the non-inline case, we could guarantee that
> fe_data_start_offset is zero. That way software which doesn't want to care
> whether something is inline-data (for example, a backup program) or not
> could just blidly add it to fe_offset before looking at the data.

Oh, I was confused as to what you are asking.  Mapping in-inode data is
just fine using the existing interface.  The byte offset of the data is
given, and the "FIEMAP_EXTENT_NO_DIRECT" flag is set to indicate that it
isn't necessarily safe to do IO directly to that byte offset in the file
(e.g. tail packed, compressed data, etc).

I was thinking you were asking how to map metadata (e.g. indirect blocks).

Cheers, Andreas
--
Andreas Dilger
Sr. Software Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

WARNING: multiple messages have this Message-ID (diff)
From: Andreas Dilger <adilger@sun.com>
To: Mark Fasheh <mark.fasheh@oracle.com>
Cc: linux-fsdevel@vger.kernel.org, David Chinner <dgc@sgi.com>,
	linux-ext4@vger.kernel.org, xfs@oss.sgi.com, hch@infradead.org,
	Anton Altaparmakov <aia21@cam.ac.uk>,
	Mike Waychison <mikew@google.com>,
	ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] Re: [RFC] add FIEMAP ioctl to efficiently map file allocation
Date: Mon Nov  5 17:44:58 2007	[thread overview]
Message-ID: <20071030002559.GH3042@webber.adilger.int> (raw)
In-Reply-To: <20071030001126.GD28607@ca-server1.us.oracle.com>

On Oct 29, 2007  17:11 -0700, Mark Fasheh wrote:
> On Mon, Oct 29, 2007 at 04:13:02PM -0600, Andreas Dilger wrote:
> > > Btrfs, Ocfs2, and Gfs2 pack small amounts of user data directly in inode
> > > blocks.
> > 
> > Hmm, but part of the issue would be how to request the extra data, and
> > what offset it would be given?  One could, for example, use negative
> > offsets to represent metadata or something, or add a FIEMAP_EXTENT_META
> > or similar, I hadn't given that much thought.
> 
> Well, fe_offset and fe_length are already expressed in bytes, so we could
> just put the byte offset to where the inline data starts in there. fe_length
> is just used as the length allocated for inline-data.
> 
> If fe_offset is required to be block aligned, then we could add a field to
> express an offset within the block where data would be found - say
> 'fe_data_start_offset'. In the non-inline case, we could guarantee that
> fe_data_start_offset is zero. That way software which doesn't want to care
> whether something is inline-data (for example, a backup program) or not
> could just blidly add it to fe_offset before looking at the data.

Oh, I was confused as to what you are asking.  Mapping in-inode data is
just fine using the existing interface.  The byte offset of the data is
given, and the "FIEMAP_EXTENT_NO_DIRECT" flag is set to indicate that it
isn't necessarily safe to do IO directly to that byte offset in the file
(e.g. tail packed, compressed data, etc).

I was thinking you were asking how to map metadata (e.g. indirect blocks).

Cheers, Andreas
--
Andreas Dilger
Sr. Software Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

  reply	other threads:[~2007-10-30  0:26 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-12 11:05 [RFC] add FIEMAP ioctl to efficiently map file allocation Andreas Dilger
2007-04-12 11:22 ` Anton Altaparmakov
2007-04-13  4:01   ` Andreas Dilger
2007-04-13  4:01     ` Andreas Dilger
2007-04-13  7:46     ` Anton Altaparmakov
2007-04-13 14:53     ` Jeff Mahoney
2007-04-13  1:33 ` Nicholas Miell
2007-04-13 10:15 ` Christoph Hellwig
2007-04-13 11:38   ` Anton Altaparmakov
2007-04-13 18:55     ` Nicholas Miell
2007-04-16  8:01 ` Timothy Shimmin
2007-04-18 23:03   ` Andreas Dilger
2007-04-16 11:22 ` David Chinner
2007-04-19  0:21   ` Andreas Dilger
2007-04-19  1:54     ` David Chinner
2007-04-30 22:44       ` Andreas Dilger
2007-05-01  4:22         ` David Chinner
2007-05-01  4:39           ` Nicholas Miell
2007-05-01 14:20             ` David Chinner
2007-05-01 18:46               ` Anton Altaparmakov
2007-05-02  9:15                 ` David Chinner
2007-05-02  9:36                   ` Anton Altaparmakov
2007-05-02 10:57                     ` David Chinner
2007-05-02 11:17                       ` Anton Altaparmakov
2007-05-03  7:49                       ` Andreas Dilger
2007-05-03  8:23                         ` Anton Altaparmakov
2007-05-02  9:45                   ` Anton Altaparmakov
2007-05-01 22:32               ` Andreas Dilger
2007-05-01 18:37           ` Anton Altaparmakov
2007-05-02  0:06             ` David Chinner
2007-05-02  8:16               ` Anton Altaparmakov
2007-10-29 19:45                 ` Andreas Dilger
2007-10-29 13:57                   ` [Ocfs2-devel] " Mark Fasheh
2007-10-29 20:57                     ` Mark Fasheh
2007-10-29 20:57                     ` Mark Fasheh
2007-10-29 22:13                     ` Andreas Dilger
2007-11-05 17:44                       ` [Ocfs2-devel] " Andreas Dilger
2007-10-29 17:11                       ` Mark Fasheh
2007-10-30  0:11                         ` Mark Fasheh
2007-10-30  0:11                         ` Mark Fasheh
2007-10-30  0:25                         ` Andreas Dilger [this message]
2007-11-05 17:44                           ` [Ocfs2-devel] " Andreas Dilger
2007-10-29 22:29                       ` Andreas Dilger
2007-11-05 17:44                         ` [Ocfs2-devel] " Andreas Dilger
2007-10-29 22:29                         ` Andreas Dilger
2007-10-29 15:40                         ` [Ocfs2-devel] " Mark Fasheh
2007-10-29 22:40                           ` Mark Fasheh
2007-10-29 22:40                           ` Mark Fasheh
2007-10-29 22:25                   ` David Chinner
2007-10-29 22:25                     ` David Chinner
2007-05-01 22:30           ` Andreas Dilger
2007-05-02  2:26             ` David Chinner
2007-05-02  8:23             ` Anton Altaparmakov
2007-05-02  8:30               ` Anton Altaparmakov
2007-05-02  9:48               ` David Chinner
2007-05-02  9:56                 ` Anton Altaparmakov
2007-04-19  6:23     ` Timothy Shimmin

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=20071030002559.GH3042@webber.adilger.int \
    --to=adilger@sun.com \
    --cc=aia21@cam.ac.uk \
    --cc=dgc@sgi.com \
    --cc=hch@infradead.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=mark.fasheh@oracle.com \
    --cc=mikew@google.com \
    --cc=ocfs2-devel@oss.oracle.com \
    --cc=xfs@oss.sgi.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 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.