static int show_on_disk_super(struct seq_file *m, void *unused)
{
	struct super_block *sb = m->private;
	struct reiserfs_sb_info *sb_info = REISERFS_SB(sb);
	struct reiserfs_super_block *rs = sb_info->s_rs;
	int hash_code = DFL(s_hash_function_code);
	__u32 flags = DJF(s_flags);

	seq_printf(m, "block_count: \t%i\n"
		   "free_blocks: \t%i\n"
		   "root_block: \t%i\n"
		   "blocksize: \t%i\n"
		   "oid_maxsize: \t%i\n"
		   "oid_cursize: \t%i\n"
		   "umount_state: \t%i\n"
		   "magic: \t%10.10s\n"
		   "fs_state: \t%i\n"
		   "hash: \t%s\n"
		   "tree_height: \t%i\n"
		   "bmap_nr: \t%i\n"
		   "version: \t%i\n"
		   "flags: \t%x[%s]\n"
		   "reserved_for_journal: \t%i\n",
		   DFL(s_block_count),
		   DFL(s_free_blocks),
		   DFL(s_root_block),
		   DF(s_blocksize),
		   DF(s_oid_maxsize),
		   DF(s_oid_cursize),
		   DF(s_umount_state),
		   rs->s_v1.s_magic,
		   DF(s_fs_state),
		   hash_code == TEA_HASH ? "tea" :
		   (hash_code == YURA_HASH) ? "rupasov" :
		   (hash_code == R5_HASH) ? "r5" :
		   (hash_code == UNSET_HASH) ? "unset" : "unknown",
		   DF(s_tree_height),
		   DF(s_bmap_nr),
		   DF(s_version), flags, (flags & reiserfs_attrs_cleared)
		   ? "attrs_cleared" : "", DF(s_reserved_for_journal));

	return 0;
}
Beispiel #2
0
int reiserfs_journal_in_proc( char *buffer, char **start, off_t offset,
			      int count, int *eof, void *data )
{
	struct super_block *sb;
	struct reiserfs_sb_info *r;
	struct reiserfs_super_block *rs;
	int len = 0;
    
	sb = procinfo_prologue( ( kdev_t ) ( long ) data );
	if( sb == NULL )
		return -ENOENT;
	r = &sb->u.reiserfs_sb;
	rs = r -> s_rs;

	len += sprintf( &buffer[ len ], 
			/* on-disk fields */
			"s_journal_block: \t%i\n"
			"s_journal_dev: \t%s[%x]\n"
			"s_orig_journal_size: \t%i\n"
			"s_journal_trans_max: \t%i\n"
			"s_journal_block_count: \t%i\n"
			"s_journal_max_batch: \t%i\n"
			"s_journal_max_commit_age: \t%i\n"
			"s_journal_max_trans_age: \t%i\n"
			/* incore fields */
			"j_state: \t%li\n"			
			"j_trans_id: \t%lu\n"
			"j_mount_id: \t%lu\n"
			"j_start: \t%lu\n"
			"j_len: \t%lu\n"
			"j_len_alloc: \t%lu\n"
			"j_wcount: \t%i\n"
			"j_bcount: \t%lu\n"
			"j_first_unflushed_offset: \t%lu\n"
			"j_last_flush_trans_id: \t%lu\n"
			"j_trans_start_time: \t%li\n"
			"j_journal_list_index: \t%i\n"
			"j_list_bitmap_index: \t%i\n"
			"j_must_wait: \t%i\n"
			"j_next_full_flush: \t%i\n"
			"j_next_async_flush: \t%i\n"
			"j_cnode_used: \t%i\n"
			"j_cnode_free: \t%i\n"
			"\n"
			/* reiserfs_proc_info_data_t.journal fields */
			"in_journal: \t%12lu\n"
			"in_journal_bitmap: \t%12lu\n"
			"in_journal_reusable: \t%12lu\n"
			"lock_journal: \t%12lu\n"
			"lock_journal_wait: \t%12lu\n"
			"journal_begin: \t%12lu\n"
			"journal_relock_writers: \t%12lu\n"
			"journal_relock_wcount: \t%12lu\n"
			"mark_dirty: \t%12lu\n"
			"mark_dirty_already: \t%12lu\n"
			"mark_dirty_notjournal: \t%12lu\n"
			"restore_prepared: \t%12lu\n"
			"prepare: \t%12lu\n"
			"prepare_retry: \t%12lu\n",

			DJF( s_journal_block ),
			DJF( s_journal_dev ) == 0 ? "none" : bdevname( DJF( s_journal_dev ) ), 
			DJF( s_journal_dev ),
			DJF( s_orig_journal_size ),
			DJF( s_journal_trans_max ),
			DJF( s_journal_block_count ),
			DJF( s_journal_max_batch ),
			DJF( s_journal_max_commit_age ),
			DJF( s_journal_max_trans_age ),
			
			JF( j_state ),			
			JF( j_trans_id ),
			JF( j_mount_id ),
			JF( j_start ),
			JF( j_len ),
			JF( j_len_alloc ),
			atomic_read( & r -> s_journal -> j_wcount ),
			JF( j_bcount ),
			JF( j_first_unflushed_offset ),
			JF( j_last_flush_trans_id ),
			JF( j_trans_start_time ),
			JF( j_journal_list_index ),
			JF( j_list_bitmap_index ),
			JF( j_must_wait ),
			JF( j_next_full_flush ),
			JF( j_next_async_flush ),
			JF( j_cnode_used ),
			JF( j_cnode_free ),

			SFPJ( in_journal ),
			SFPJ( in_journal_bitmap ),
			SFPJ( in_journal_reusable ),
			SFPJ( lock_journal ),
			SFPJ( lock_journal_wait ),
			SFPJ( journal_being ),
			SFPJ( journal_relock_writers ),
			SFPJ( journal_relock_wcount ),
			SFPJ( mark_dirty ),
			SFPJ( mark_dirty_already ),
			SFPJ( mark_dirty_notjournal ),
			SFPJ( restore_prepared ),
			SFPJ( prepare ),
			SFPJ( prepare_retry )
		);

	procinfo_epilogue( sb );
	return reiserfs_proc_tail( len, buffer, start, offset, count, eof );
}