diff -urN linux-2.4.27-wt6/fs/buffer.c linux-2.4.27-wt6-331/fs/buffer.c --- linux-2.4.27-wt6/fs/buffer.c Sun Sep 12 23:38:37 2004 +++ linux-2.4.27-wt6-331/fs/buffer.c Sun Sep 12 23:38:58 2004 @@ -1198,6 +1198,12 @@ } EXPORT_SYMBOL(get_buffer_flushtime); +inline int get_buffer_age(void) +{ + return bdf_prm.b_un.age_buffer; +} +EXPORT_SYMBOL(get_buffer_age); + /* * A buffer may need to be moved from one buffer list to another * (e.g. in case it is not shared any more). Handle this. diff -urN linux-2.4.27-wt6/fs/reiserfs/journal.c linux-2.4.27-wt6-331/fs/reiserfs/journal.c --- linux-2.4.27-wt6/fs/reiserfs/journal.c Sun Sep 12 23:38:37 2004 +++ linux-2.4.27-wt6-331/fs/reiserfs/journal.c Sun Sep 12 23:38:58 2004 @@ -58,6 +58,7 @@ #include #include #include +#include /* the number of mounted filesystems. This is used to decide when to ** start and kill the commit thread @@ -2670,8 +2671,12 @@ /* starting with oldest, loop until we get to the start */ i = (SB_JOURNAL_LIST_INDEX(p_s_sb) + 1) % JOURNAL_LIST_COUNT ; while(i != start) { - if (SB_JOURNAL_LIST(p_s_sb)[i].j_len > 0 && ((now - SB_JOURNAL_LIST(p_s_sb)[i].j_timestamp) > SB_JOURNAL_MAX_COMMIT_AGE(p_s_sb) || - immediate)) { + /* get_buffer_age() / HZ is used since the time returned by + * get_buffer_age is in sec * HZ and the journal time is taken in seconds. + */ + if (SB_JOURNAL_LIST(p_s_sb)[i].j_len > 0 && + ((now - SB_JOURNAL_LIST(p_s_sb)[i].j_timestamp) > get_buffer_age() / HZ + || immediate)) { /* we have to check again to be sure the current transaction did not change */ if (i != SB_JOURNAL_LIST_INDEX(p_s_sb)) { flush_commit_list(p_s_sb, SB_JOURNAL_LIST(p_s_sb) + i, 1) ; diff -urN linux-2.4.27-wt6/fs/reiserfs/procfs.c linux-2.4.27-wt6-331/fs/reiserfs/procfs.c --- linux-2.4.27-wt6/fs/reiserfs/procfs.c Sun Sep 12 23:38:37 2004 +++ linux-2.4.27-wt6-331/fs/reiserfs/procfs.c Sun Sep 12 23:38:58 2004 @@ -18,6 +18,7 @@ #include #include #include +#include #if defined( REISERFS_PROC_INFO ) @@ -528,7 +529,11 @@ DJP( jp_journal_trans_max ), DJP( jp_journal_magic ), DJP( jp_journal_max_batch ), - DJP( jp_journal_max_commit_age ), + /* get_buffer_age() / HZ is used since the + * time returned by get_buffer_age is in sec * HZ + * and the journal time is in seconds. + */ + get_buffer_age()/HZ, DJP( jp_journal_max_trans_age ), JF( j_1st_reserved_block ), diff -urN linux-2.4.27-wt6/include/linux/fs.h linux-2.4.27-wt6-331/include/linux/fs.h --- linux-2.4.27-wt6/include/linux/fs.h Sun Sep 12 23:38:37 2004 +++ linux-2.4.27-wt6-331/include/linux/fs.h Sun Sep 12 23:39:33 2004 @@ -1265,6 +1265,7 @@ extern void set_buffer_flushtime(struct buffer_head *); extern int get_buffer_flushtime(void); +extern inline int get_buffer_age(void); extern void balance_dirty(void); extern int check_disk_change(kdev_t); extern int invalidate_inodes(struct super_block *);