Exemple #1
0
int reiserfs_per_level_in_proc( char *buffer, char **start, off_t offset,
				int count, int *eof, void *data )
{
	struct super_block *sb;
	struct reiserfs_sb_info *r;
	int len = 0;
	int level;
	
	sb = procinfo_prologue( ( kdev_t ) ( long ) data );
	if( sb == NULL )
		return -ENOENT;
	r = &sb->u.reiserfs_sb;

	len += sprintf( &buffer[ len ],
			"level\t"
			"     balances"
			" [sbk:  reads"
			"   fs_changed"
			"   restarted]"
			"   free space"
			"        items"
			"   can_remove"
			"         lnum"
			"         rnum"
			"       lbytes"
			"       rbytes"
			"     get_neig"
			" get_neig_res"
			"  need_l_neig"
			"  need_r_neig"
			"\n"
			
		);

	for( level = 0 ; level < MAX_HEIGHT ; ++ level ) {
		if( len > PAGE_SIZE - 240 ) {
			len += sprintf( &buffer[ len ], "... and more\n" );
			break;
		}
		len += sprintf( &buffer[ len ], 
				"%i\t"
				" %12lu"
				" %12lu"
				" %12lu"
				" %12lu"
				" %12lu"
				" %12lu"
				" %12lu"
				" %12li"
				" %12li"
				" %12li"
				" %12li"
				" %12lu"
				" %12lu"
				" %12lu"
				" %12lu"
				"\n",
				level, 
				SFPL( balance_at ),
				SFPL( sbk_read_at ),
				SFPL( sbk_fs_changed ),
				SFPL( sbk_restarted ),
				SFPL( free_at ),
				SFPL( items_at ),
				SFPL( can_node_be_removed ),
				SFPL( lnum ),
				SFPL( rnum ),
				SFPL( lbytes ),
				SFPL( rbytes ),
				SFPL( get_neighbors ),
				SFPL( get_neighbors_restart ),
				SFPL( need_l_neighbor ),
				SFPL( need_r_neighbor )
			);
	}

	procinfo_epilogue( sb );
	return reiserfs_proc_tail( len, buffer, start, offset, count, eof );
}
static int show_per_level(struct seq_file *m, void *unused)
{
	struct super_block *sb = m->private;
	struct reiserfs_sb_info *r = REISERFS_SB(sb);
	int level;

	seq_printf(m, "level\t"
		   "     balances"
		   " [sbk:  reads"
		   "   fs_changed"
		   "   restarted]"
		   "   free space"
		   "        items"
		   "   can_remove"
		   "         lnum"
		   "         rnum"
		   "       lbytes"
		   "       rbytes"
		   "     get_neig"
		   " get_neig_res" "  need_l_neig" "  need_r_neig" "\n");

	for (level = 0; level < MAX_HEIGHT; ++level) {
		seq_printf(m, "%i\t"
			   " %12lu"
			   " %12lu"
			   " %12lu"
			   " %12lu"
			   " %12lu"
			   " %12lu"
			   " %12lu"
			   " %12li"
			   " %12li"
			   " %12li"
			   " %12li"
			   " %12lu"
			   " %12lu"
			   " %12lu"
			   " %12lu"
			   "\n",
			   level,
			   SFPL(balance_at),
			   SFPL(sbk_read_at),
			   SFPL(sbk_fs_changed),
			   SFPL(sbk_restarted),
			   SFPL(free_at),
			   SFPL(items_at),
			   SFPL(can_node_be_removed),
			   SFPL(lnum),
			   SFPL(rnum),
			   SFPL(lbytes),
			   SFPL(rbytes),
			   SFPL(get_neighbors),
			   SFPL(get_neighbors_restart),
			   SFPL(need_l_neighbor), SFPL(need_r_neighbor)
		    );
	}
	return 0;
}