All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miao Xie <miaox@cn.fujitsu.com>
To: Jan Schmidt <list.btrfs@jan-o-sch.net>
Cc: "Jérôme Poulin" <jeromepoulin@gmail.com>,
	linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: Cannot list subvolumes with latest git
Date: Fri, 16 Nov 2012 09:34:42 +0800	[thread overview]
Message-ID: <50A59832.1020306@cn.fujitsu.com> (raw)
In-Reply-To: <50A512D5.6070706@jan-o-sch.net>

On Thu, 15 Nov 2012 17:05:41 +0100, Jan Schmidt wrote:
> On Wed, November 14, 2012 at 19:26 (+0100), Jérôme Poulin wrote:
>> Using Debian experimental kernel, 3.6.4-1~experimental.1, and latest
>> btrfs tools from git master, I am not able to execute btrfs subvolume
>> list.
>>
>> # ./btrfs sub li /mnt/data0/
>> ERROR: Failed to lookup path for root 0 - No such file or directory
>>
>> After bisecting with git, I was able to confirm that commit
>> 162df1e30c7c0492ae9fb551d74452e643f5fea2 breaks btrfs subvolume list
>> on my current kernel.
> 
> I can confirm this. Steps to reproduce:
> 
> - create subvolume
> - put some data in
> - delete subvolume
> - call "btrfs subvol list" immediately
> 
> If you give it some time, listing of subvolumes eventually works. Calling "sync"
> doesn't help, surprisingly, while umount/mount does.

When we delete a subvolume, we just delete its ref and backref, don't delete the tree
at once, it will be done by the cleaner thread, which is woke up after the transaction
thread commits a transaction, that is the deletion of the tree may not be done in the
current transaction. It is the reason why "sync" doesn't help.

> Some add_root get's called with ref_tree = 0, which in turn makes
> lookup_ino_path call BTRFS_IOC_INO_LOOKUP with a treeid of 0, which looks wrong
> to me. I haven't looked any closer.

Right.

> Miao, as that was your patch, can you probably check if you can reproduce the
> problem?

This problem was fixed by the following patch several days ago, but the patch have not
been applied into Chris's btrfs-progs tree.

  Btrfs-progs: filter the deleted subvolumes when listing snapshots

You can pull it from the URL:

  git://github.com/miaoxie/btrfs-progs.git master

Thanks
Miao

      reply	other threads:[~2012-11-16  1:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-14 18:26 Cannot list subvolumes with latest git Jérôme Poulin
2012-11-15 16:05 ` Jan Schmidt
2012-11-16  1:34   ` Miao Xie [this message]

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=50A59832.1020306@cn.fujitsu.com \
    --to=miaox@cn.fujitsu.com \
    --cc=jeromepoulin@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=list.btrfs@jan-o-sch.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 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.