Userspace utilities to manage btrfs filesystems
Go to file
Josef Bacik b25a40651d Btrfs-progs: delete bogus dir indexes
We may run across dir indexes that are corrupt in such a way that it makes them
useless, such as having a bad location key or a bad name.  In this case we can
just delete dir indexes that don't show up properly and then re-create what we
need.  When we delete dir indexes however we need to restart scanning the fs
tree as we could have greated bogus inode recs if the location key was bad, so
set it up so that if we had to delete an dir index we go ahead and free up our
inode recs and return -EAGAIN to check_fs_roots so it knows to restart the loop.
Thanks,

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
2014-10-14 10:45:03 +02:00
Documentation btrfs-progs: document the limit balance filter 2014-10-10 19:30:22 +02:00
tests Btrfs-progs: repair missing dir index 2014-10-13 23:20:44 +02:00
.gitignore btrfs-progs: Introduce asciidoc based man page and btrfs man page. 2014-04-22 14:15:19 +02:00
COPYING fix COPYING 2007-06-12 15:41:08 -04:00
INSTALL btrfs-progs: Add information about libblkid requirement to INSTALL file 2014-08-22 14:39:31 +02:00
Makefile Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
backref.c Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
backref.h Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
bcp Btrfs-progs: Correct path munging in bcp 2011-10-25 09:18:58 -04:00
bitops.h Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
btrfs-calc-size.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-convert.c btrfs-progs: convert: set label or copy from origin 2014-10-10 19:06:57 +02:00
btrfs-corrupt-block.c btrfs-progs: corrupt-block: fix a delete and use bug corrupting extent tree 2014-09-14 13:12:27 +02:00
btrfs-crc.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-debug-tree.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-find-root.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-fragments.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-image.c btrfs-progs: add mount status check for btrfs-image 2014-08-22 15:07:03 +02:00
btrfs-list.c Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
btrfs-list.h btrfs-progs: Add -R to list UUIDs of original received subvolume 2014-09-14 13:09:52 +02:00
btrfs-map-logical.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-select-super.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-show-super.c btrfs-progs: Add human readable incompat flags output for btrfs-show-super 2014-10-01 16:34:22 +02:00
btrfs-zero-log.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs.c btrfs-progs: move the check_argc_* functions into utils.c 2014-08-22 14:55:27 +02:00
btrfsck.h btrfs-progs: Copyright string update 2014-03-21 06:23:24 -07:00
btrfstune.c btrfs-progs: add ask_user confirmation for btrfstune clear seeding flag 2014-08-22 16:09:55 +02:00
chunk-recover.c btrfs-progs: Fix malloc size for superblock. 2014-10-10 09:09:47 +02:00
cmds-balance.c btrfs-progs: balance filter: add limit of processed chunks 2014-08-22 14:55:26 +02:00
cmds-check.c Btrfs-progs: delete bogus dir indexes 2014-10-14 10:45:03 +02:00
cmds-device.c btrfs-progs: remove BTRFS_SCAN_PROC scan method 2014-10-10 10:38:34 +02:00
cmds-filesystem.c btrfs-progs: add options to tune units for fi df output 2014-10-10 18:58:28 +02:00
cmds-inspect.c Btrfs-progs: fix some build warnings on 32bit platform 2014-08-22 15:07:03 +02:00
cmds-property.c btrfs-progs: remove unnecessary return value check in btrfs-property 2014-08-22 15:07:03 +02:00
cmds-qgroup.c btrfs-progs: qgroup destroy says create failed 2014-01-31 08:22:12 -08:00
cmds-quota.c Btrfs-progs: fix magic return value in cmds-quota.c 2013-10-16 08:20:41 -04:00
cmds-receive.c btrfs-progs: add missing descriptions of '--max-errors' in btrfs-receive documentation 2014-08-22 15:07:04 +02:00
cmds-replace.c btrfs-progs: return error when canonicalize_path failed 2014-10-10 10:51:57 +02:00
cmds-rescue.c btrfs-progs: use check_argc_exact to check arg number of btrfs-rescue 2014-08-22 14:39:31 +02:00
cmds-restore.c btrfs-progs: remove wrong set_argv0 for restore 2014-09-14 19:06:12 +02:00
cmds-scrub.c btrfs-progs: scrub, detect stale information in the status file 2014-10-10 10:38:36 +02:00
cmds-send.c btrfs-progs: Check fstype in find_mount_root() 2014-08-22 15:07:02 +02:00
cmds-subvolume.c btrfs-progs: wait until all subvolumes are cleaned 2014-10-10 09:32:05 +02:00
commands.h btrfs-progs: move the check_argc_* functions into utils.c 2014-08-22 14:55:27 +02:00
crc32c.c btrfs-progs: make many private symbols static 2013-09-03 19:41:08 +02:00
crc32c.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
ctree.c Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
ctree.h Btrfs-progs: delete bogus dir indexes 2014-10-14 10:45:03 +02:00
dir-item.c Btrfs-progs: delete bogus dir indexes 2014-10-14 10:45:03 +02:00
dir-test.c Btrfs-progs: fix magic return value in dir-test.c 2013-10-16 08:20:42 -04:00
disk-io.c Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
disk-io.h btrfs-progs: kill BUG_ON in readahead_tree_block() 2014-09-14 13:19:44 +02:00
extent-cache.c Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
extent-cache.h Btrfs-progs: extend the extent cache for the device extent 2013-07-03 14:06:54 -04:00
extent-tree.c btrfs-progs: remove unused flags for btrfs_path 2014-08-28 02:03:18 +02:00
extent_io.c Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
extent_io.h Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
file-item.c btrfs-progs: remove btrfs_release_path before btrfs_free_path 2014-09-14 19:06:12 +02:00
free-space-cache.c btrfs-progs: make free space checker work on non-4k sectorsize filesystems 2014-10-10 10:38:31 +02:00
free-space-cache.h btrfs-progs: make free space checker work on non-4k sectorsize filesystems 2014-10-10 10:38:31 +02:00
fsck.btrfs btrfs-progs: add fsck.btrfs stub and manpage 2014-01-31 08:22:13 -08:00
hash.h Switch btrfs_name_hash() to crc32c 2008-08-20 20:11:23 -04:00
hasher.c Unaligned access fixes 2008-02-15 11:19:58 -05:00
help.c btrfs-progs: move the check_argc_* functions into utils.c 2014-08-22 14:55:27 +02:00
inode-item.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
inode-map.c btrfs-progs: remove btrfs_release_path before btrfs_free_path 2014-09-14 19:06:12 +02:00
ioctl-test.c btrfs-progs: mark static & remove unused from non-kernel code 2013-09-03 19:40:54 +02:00
ioctl.h btrfs-progs: balance filter: add limit of processed chunks 2014-08-22 14:55:26 +02:00
kerncompat.h Btrfs-progs: update rbtree libs 2014-10-14 10:39:40 +02:00
list.h Btrfs-progs: introduce list_{first, next}_entry/list_splice_tail{_init} 2013-07-03 14:06:55 -04:00
list_sort.c btrfs-progs: add list_sort and use it to sort devices by id 2013-10-16 08:22:26 -04:00
list_sort.h btrfs-progs: add list_sort and use it to sort devices by id 2013-10-16 08:22:26 -04:00
math.h btrfs-progs: Copyright string update 2014-03-21 06:23:24 -07:00
mkfs.c btrfs-progs: mkfs make --uuid require an argument 2014-08-22 16:09:56 +02:00
print-tree.c btrfs-progs: debug: print more info about inode 2014-10-10 18:15:28 +02:00
print-tree.h btrfs-progs: add quota group verify code 2014-08-22 14:39:33 +02:00
props.c Btrfs-progs: set string end sing '\0' for property 2014-05-02 17:05:37 +02:00
props.h Btrfs-progs: introduce btrfs property subgroup 2014-01-31 08:22:31 -08:00
qgroup-verify.c Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
qgroup-verify.h btrfs-progs: show extent state for a subvolume 2014-08-22 15:04:16 +02:00
qgroup.c btrfs-progs: print qgroup excl as unsigned 2014-08-22 14:39:32 +02:00
qgroup.h Btrfs-progs: enhance btrfs qgroup show to sort qgroups 2013-10-16 08:23:12 -04:00
quick-test.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
radix-tree.c btrfs-progs: Fix undefined behavior in radix-tree.c. 2014-08-22 14:39:34 +02:00
radix-tree.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
raid6.c btrfs-progs: give raid6.c its exported prototypes 2013-09-03 19:41:11 +02:00
random-test.c Btrfs-progs: fix magic return value in random-test.c 2013-10-16 08:20:42 -04:00
rbtree-utils.c Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
rbtree-utils.h Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
rbtree.c Btrfs-progs: update rbtree libs 2014-10-14 10:39:40 +02:00
rbtree.h Btrfs-progs: update rbtree libs 2014-10-14 10:39:40 +02:00
rbtree_augmented.h Btrfs-progs: update rbtree libs 2014-10-14 10:39:40 +02:00
repair.c Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04:00
repair.h Btrfsck: add the ability to prune corrupt extent allocation tree blocks 2012-02-21 14:37:21 -05:00
root-tree.c Btrfs-progs: free path if we don't find root item 2014-03-21 06:23:32 -07:00
send-stream.c btrfs-progs: fix unaligned loads in receive 2014-08-22 16:09:55 +02:00
send-stream.h btrfs-progs: library version defines 2014-09-02 17:04:15 +02:00
send-test.c Btrfs-progs: remove unsed pthread attribute objects 2014-04-22 14:33:35 +02:00
send-utils.c btrfs-progs: Init root_item to avoid gcc 4.8.2 warning 2014-03-21 06:23:29 -07:00
send-utils.h btrfs-progs: enclose uuid tree compat code with ifdefs 2014-03-21 06:23:07 -07:00
send.h btrfs-progs: make libbtrfs usable from C++ 2013-02-19 11:15:30 +01:00
show-blocks Fix showblocks to display different colors for different metadata roots 2009-03-09 13:00:44 -04:00
super-recover.c btrfs-progs: super-recover: fix double free fs_devices memory 2014-10-10 10:38:32 +02:00
transaction.h btrfs-progs: add malloc check in transaction.h/btrfs_start_transaction 2013-01-18 18:27:21 +01:00
ulist.c btrfs-progs: import ulist 2014-08-22 14:39:33 +02:00
ulist.h Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
utils-lib.c btrfs-progs: move arg_strtou64 to a separate file for library 2014-05-02 17:04:28 +02:00
utils.c btrfs-progs: add options to tune units for fi df output 2014-10-10 18:58:28 +02:00
utils.h btrfs-progs: add options to tune units for fi df output 2014-10-10 18:58:28 +02:00
uuid-tree.c btrfs-progs: fix in-place byte swapping 2013-09-03 19:41:06 +02:00
version.sh Btrfs progs v3.16.2 2014-10-01 18:07:59 +02:00
volumes.c btrfs-progs: fix device missing of btrfs fi show with seed devices 2014-10-10 10:52:41 +02:00
volumes.h btrfs-progs: fix device missing of btrfs fi show with seed devices 2014-10-10 10:52:41 +02:00