Commit 68d9807c authored by Oleg Drokin's avatar Oleg Drokin

Add displaying of more reiserfs statistical info through /proc interface, by Nikita Danilov

parent 0ee29e60
...@@ -165,6 +165,12 @@ int reiserfs_super_in_proc( char *buffer, char **start, off_t offset, ...@@ -165,6 +165,12 @@ int reiserfs_super_in_proc( char *buffer, char **start, off_t offset,
"search_by_key_fs_changed: \t%lu\n" "search_by_key_fs_changed: \t%lu\n"
"search_by_key_restarted: \t%lu\n" "search_by_key_restarted: \t%lu\n"
"insert_item_restarted: \t%lu\n"
"paste_into_item_restarted: \t%lu\n"
"cut_from_item_restarted: \t%lu\n"
"delete_solid_item_restarted: \t%lu\n"
"delete_item_restarted: \t%lu\n"
"leaked_oid: \t%lu\n" "leaked_oid: \t%lu\n"
"leaves_removable: \t%lu\n", "leaves_removable: \t%lu\n",
...@@ -201,6 +207,13 @@ int reiserfs_super_in_proc( char *buffer, char **start, off_t offset, ...@@ -201,6 +207,13 @@ int reiserfs_super_in_proc( char *buffer, char **start, off_t offset,
SFP( search_by_key ), SFP( search_by_key ),
SFP( search_by_key_fs_changed ), SFP( search_by_key_fs_changed ),
SFP( search_by_key_restarted ), SFP( search_by_key_restarted ),
SFP( insert_item_restarted ),
SFP( paste_into_item_restarted ),
SFP( cut_from_item_restarted ),
SFP( delete_solid_item_restarted ),
SFP( delete_item_restarted ),
SFP( leaked_oid ), SFP( leaked_oid ),
SFP( leaves_removable ) ); SFP( leaves_removable ) );
......
...@@ -1245,6 +1245,8 @@ int reiserfs_delete_item (struct reiserfs_transaction_handle *th, ...@@ -1245,6 +1245,8 @@ int reiserfs_delete_item (struct reiserfs_transaction_handle *th,
if ( n_ret_value != REPEAT_SEARCH ) if ( n_ret_value != REPEAT_SEARCH )
break; break;
PROC_INFO_INC( p_s_sb, delete_item_restarted );
// file system changed, repeat search // file system changed, repeat search
n_ret_value = search_for_position_by_key(p_s_sb, p_s_item_key, p_s_path); n_ret_value = search_for_position_by_key(p_s_sb, p_s_item_key, p_s_path);
if (n_ret_value == IO_ERROR) if (n_ret_value == IO_ERROR)
...@@ -1355,8 +1357,10 @@ void reiserfs_delete_solid_item (struct reiserfs_transaction_handle *th, ...@@ -1355,8 +1357,10 @@ void reiserfs_delete_solid_item (struct reiserfs_transaction_handle *th,
} }
retval = fix_nodes (M_DELETE, &tb, NULL, 0); retval = fix_nodes (M_DELETE, &tb, NULL, 0);
if (retval == REPEAT_SEARCH) if (retval == REPEAT_SEARCH) {
PROC_INFO_INC( th -> t_super, delete_solid_item_restarted );
continue; continue;
}
if (retval == CARRY_ON) { if (retval == CARRY_ON) {
do_balance (&tb, 0, 0, M_DELETE); do_balance (&tb, 0, 0, M_DELETE);
...@@ -1543,6 +1547,8 @@ int reiserfs_cut_from_item (struct reiserfs_transaction_handle *th, ...@@ -1543,6 +1547,8 @@ int reiserfs_cut_from_item (struct reiserfs_transaction_handle *th,
if ( n_ret_value != REPEAT_SEARCH ) if ( n_ret_value != REPEAT_SEARCH )
break; break;
PROC_INFO_INC( p_s_sb, cut_from_item_restarted );
n_ret_value = search_for_position_by_key(p_s_sb, p_s_item_key, p_s_path); n_ret_value = search_for_position_by_key(p_s_sb, p_s_item_key, p_s_path);
if (n_ret_value == POSITION_FOUND) if (n_ret_value == POSITION_FOUND)
continue; continue;
...@@ -1810,6 +1816,7 @@ int reiserfs_paste_into_item (struct reiserfs_transaction_handle *th, ...@@ -1810,6 +1816,7 @@ int reiserfs_paste_into_item (struct reiserfs_transaction_handle *th,
while ( (retval = fix_nodes(M_PASTE, &s_paste_balance, NULL, p_c_body)) == REPEAT_SEARCH ) { while ( (retval = fix_nodes(M_PASTE, &s_paste_balance, NULL, p_c_body)) == REPEAT_SEARCH ) {
/* file system changed while we were in the fix_nodes */ /* file system changed while we were in the fix_nodes */
PROC_INFO_INC( th -> t_super, paste_into_item_restarted );
retval = search_for_position_by_key (th->t_super, p_s_key, p_s_search_path); retval = search_for_position_by_key (th->t_super, p_s_key, p_s_search_path);
if (retval == IO_ERROR) { if (retval == IO_ERROR) {
retval = -EIO ; retval = -EIO ;
...@@ -1860,6 +1867,7 @@ int reiserfs_insert_item(struct reiserfs_transaction_handle *th, ...@@ -1860,6 +1867,7 @@ int reiserfs_insert_item(struct reiserfs_transaction_handle *th,
while ( (retval = fix_nodes(M_INSERT, &s_ins_balance, p_s_ih, p_c_body)) == REPEAT_SEARCH) { while ( (retval = fix_nodes(M_INSERT, &s_ins_balance, p_s_ih, p_c_body)) == REPEAT_SEARCH) {
/* file system changed while we were in the fix_nodes */ /* file system changed while we were in the fix_nodes */
PROC_INFO_INC( th -> t_super, insert_item_restarted );
retval = search_item (th->t_super, key, p_s_path); retval = search_item (th->t_super, key, p_s_path);
if (retval == IO_ERROR) { if (retval == IO_ERROR) {
retval = -EIO; retval = -EIO;
......
...@@ -270,6 +270,12 @@ typedef struct reiserfs_proc_info_data ...@@ -270,6 +270,12 @@ typedef struct reiserfs_proc_info_data
stat_cnt_t search_by_key_fs_changed; stat_cnt_t search_by_key_fs_changed;
stat_cnt_t search_by_key_restarted; stat_cnt_t search_by_key_restarted;
stat_cnt_t insert_item_restarted;
stat_cnt_t paste_into_item_restarted;
stat_cnt_t cut_from_item_restarted;
stat_cnt_t delete_solid_item_restarted;
stat_cnt_t delete_item_restarted;
stat_cnt_t leaked_oid; stat_cnt_t leaked_oid;
stat_cnt_t leaves_removable; stat_cnt_t leaves_removable;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment