linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hugo Mills <hugo@carfax.org.uk>
To: Arne Jansen <sensille@gmx.net>
Cc: liubo <liubo2009@cn.fujitsu.com>,
	Chris Mason <chris.mason@oracle.com>,
	Linux Btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: Backref walking utilities
Date: Mon, 23 May 2011 11:15:33 +0100	[thread overview]
Message-ID: <20110523101533.GA3346@carfax.org.uk> (raw)
In-Reply-To: <4DDA30AD.2020409@gmx.net>

[-- Attachment #1: Type: text/plain, Size: 2407 bytes --]

On Mon, May 23, 2011 at 12:02:21PM +0200, Arne Jansen wrote:
> Hi liubo,
> 
> On 23.05.2011 11:53, liubo wrote:
> > As one of my plans, I'm going to take this project over unless someone has been working on it.
> 
> Jan Schmidt has a patch for scrub nearly ready, that does some
> ref-walking to report affected files to the user. While this is
> kernel code and you're planning to add user-space code, it might
> still be possible to share some of it. Maybe the efforts can be
> coordinated.

   Another use for walking backrefs for a block (or an extent) is to
work out the differential size of a snapshot -- i.e. how much space
will be freed up if the snapshot is deleted. (You need to look at
every extent of every file in the snapshot, and work out whether those
extents are used anywhere outside the subvolume).

   Hugo.

> Thanks
> Arne
> 
> > 
> >>From wiki, quote:
> >     Backref walking utilities
> > 
> >     Given a block number on a disk, the Btrfs metadata can find all the files and directories
> >     that use or care about that block.  Some utilities to walk these back refs and print the
> >     results would help debug corruptions.
> > 
> >     Given an inode, the Btrfs metadata can find all the directories that point to the inode.
> >     We should have utils to walk these back refs as well. 
> > end quote.
> > 
> > And I have some thoughts to share with you:
> > 
> >     - Clearly, this is going to be another command.  Just like the command "btrfs-debug-tree",
> >       btrfs-walk-backref also needs to be able to track btrfs's metadata in
> >           a) the offline situation (at a umount state), or
> >           b) the corrupted situation.
> > 
> >     - For block number, the main goal is to find relative extent backrefs.  When it comes to
> >       those shared blocks, maybe things will be more complex.
> > 
> >     - For inode, the main goal is to find relative inode refs.  And we should be cautious about
> >       a) an inode with hard links, b) snapshot.
> > 
> > Did I miss or misunderstand something?  Any comments are welcomed. :)
> > 
> > thanks,
> > liubo

-- 
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
  PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
   --- We are all lying in the gutter,  but some of us are looking ---   
                              at the stars.                              

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 190 bytes --]

  reply	other threads:[~2011-05-23 10:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-23  9:53 Backref walking utilities liubo
2011-05-23 10:02 ` Arne Jansen
2011-05-23 10:15   ` Hugo Mills [this message]
2011-05-25 15:08   ` Jan Schmidt
2011-05-26  1:51     ` liubo

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=20110523101533.GA3346@carfax.org.uk \
    --to=hugo@carfax.org.uk \
    --cc=chris.mason@oracle.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=liubo2009@cn.fujitsu.com \
    --cc=sensille@gmx.net \
    /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).