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
--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html