1e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#
2e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall# Restricted set of debugfs commands
3e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#
4e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall# Copyright (C) 1993 Theodore Ts'o.  This file may be redistributed
5e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall# under the terms of the GNU Public License.
6e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#
7e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallcommand_table debug_cmds;
8e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
9e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_show_debugfs_params, "Show debugfs parameters",
10e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	show_debugfs_params, params;
11e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
12e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_open_filesys, "Open a filesystem",
13e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	open_filesys, open;
14e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
15e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_close_filesys, "Close the filesystem",
16e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	close_filesys, close;
17e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
18e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_freefrag, "Report free space fragmentation",
19e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	freefrag, e2freefrag;
20e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
21e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_show_super_stats, "Show superblock statistics",
22e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	show_super_stats, stats;
23e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
24e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_ncheck, "Do inode->name translation",
25e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	ncheck;
26e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
27e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_icheck, "Do block->inode translation",
28e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	icheck;
29e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
30e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_chroot, "Change root directory",
31e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	change_root_directory, chroot;
32e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
33e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_change_working_dir, "Change working directory",
34e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	change_working_directory, cd;
35e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
36e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_list_dir, "List directory",
37e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	list_directory, ls;
38e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
39e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_stat, "Show inode information ",
40e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	show_inode_info, stat;
41e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
42e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_dump_extents, "Dump extents information ",
43e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	dump_extents, extents, ex;
44e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
45e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_blocks, "Dump blocks used by an inode ",
46e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	blocks;
47e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
48e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_filefrag, "Report fragmentation information for an inode",
49e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	filefrag;
50e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
51e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_testi, "Test an inode's in-use flag",
52e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	testi;
53e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
54e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_find_free_block, "Find free block(s)",
55e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	find_free_block, ffb;
56e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
57e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_find_free_inode, "Find free inode(s)",
58e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	find_free_inode, ffi;
59e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
60e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest	do_print_working_directory, "Print current working directory",
61e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	print_working_directory, pwd; 
62e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
63e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_lsdel, "List deleted inodes",
64e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	list_deleted_inodes, lsdel;
65e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
66e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_logdump, "Dump the contents of the journal",
67e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	logdump;
68e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
69e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_htree_dump, "Dump a hash-indexed directory",
70e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	htree_dump, htree;
71e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
72e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_dx_hash, "Calculate the directory hash of a filename",
73e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	dx_hash, hash;
74e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
75e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_dirsearch, "Search a directory for a particular filename",
76e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	dirsearch;
77e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
78e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_bmap, "Calculate the logical->physical block mapping for an inode",
79e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	bmap;
80e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
81e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_imap, "Calculate the location of an inode",
82e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	imap;
83e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
84e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_supported_features, "Print features supported by this version of e2fsprogs",
85e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	supported_features;
86e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
87e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_dump_mmp, "Dump MMP information",
88e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	dump_mmp;
89e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
90e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrequest do_extent_open, "Open inode for extent manipulation",
91e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	extent_open, eo;
92e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
93e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallend;
94e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
95