summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@redhat.com>2008-07-30 09:15:02 -0400
committerDavid Woodhouse <dwmw2@hera.kernel.org>2008-07-30 09:15:02 -0400
commit0045e0dd707a2db25231c454cb8d247bb56308cf (patch)
treee608b6ed4679c8a8eab9c231d29f16f6cff740c8
parente74b89d6759b7f1d3aefe60a2f9cd139d40be79e (diff)
downloadbtrfs-progs-0045e0dd707a2db25231c454cb8d247bb56308cf.tar.gz
btrfs-progs: add orphan support to print-tree
This adds orphan support to print-tree so when debug_tree hits an orphan item it will print out "orphan item" under it so you know what it is
-rw-r--r--ctree.h4
-rw-r--r--print-tree.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/ctree.h b/ctree.h
index d9209783..821bf9bf 100644
--- a/ctree.h
+++ b/ctree.h
@@ -55,6 +55,9 @@ struct btrfs_trans_handle;
/* directory objectid inside the root tree */
#define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL
+/* oprhan objectid for tracking unlinked/truncated files */
+#define BTRFS_ORPHAN_OBJECTID -5ULL
+
/*
* All files have objectids higher than this.
*/
@@ -564,6 +567,7 @@ struct btrfs_root {
#define BTRFS_INODE_ITEM_KEY 1
#define BTRFS_INODE_REF_KEY 2
#define BTRFS_XATTR_ITEM_KEY 8
+#define BTRFS_ORPHAN_ITEM_KEY 9
/* reserve 3-15 close to the inode for later flexibility */
diff --git a/print-tree.c b/print-tree.c
index 5914a6a6..d6d32a0e 100644
--- a/print-tree.c
+++ b/print-tree.c
@@ -183,6 +183,9 @@ void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
di = btrfs_item_ptr(l, i, struct btrfs_dir_item);
print_dir_item(l, item, di);
break;
+ case BTRFS_ORPHAN_ITEM_KEY:
+ printf("\t\torphan item\n");
+ break;
case BTRFS_ROOT_ITEM_KEY:
ri = btrfs_item_ptr(l, i, struct btrfs_root_item);
read_extent_buffer(l, &root_item, (unsigned long)ri, sizeof(root_item));