write_out_data in JBD

From: Zoltan Menyhart
Date: Thu May 18 2006 - 04:28:15 EST


Stephen,

Here is a code fragment starting at "write_out_data:" in
"journal_commit_transaction()":

Let's assume that there is a single "jh" on the list.

write_out_data:
while (commit_transaction->t_sync_datalist) {

jh = commit_transaction->t_sync_datalist;
commit_transaction->t_sync_datalist = jh->b_tnext;

// "commit_transaction->t_sync_datalist" happens always
// to point at our single "jh"

bh = jh2bh(jh);

// Assume not locked
// Assume dirty

if (buffer_dirty(bh)) {
get_bh(bh);
wbuf[bufs++] = bh;
if (bufs == journal->j_wbufsize) {
...
goto write_out_data;
}
} else ...
}

I think our single "jh" will be put on "wbuf[]" repeatedly
("journal->j_wbufsize" times).

Regards,

Zoltan Menyhart

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/