summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-04-11 22:57:51 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-04-11 22:57:51 -0700
commit2b38960cbf6a500bb8d2d8afd7e0cd546c72efe6 (patch)
tree58c211f7e904062581baa300694b3927448bd065 /scripts
parent376fd482d39e4f51685cd9d33b099e9cfc3b21e3 (diff)
[PATCH] JBD: ordered-data commit cleanup
For data=ordered, kjournald at commit time has to write out and wait upon a long list of buffers. It does this in a rather awkward way with a single list. it causes complexity and long lock hold times, and makes the addition of rescheduling points quite hard So what we do instead (based on Chris Mason's suggestion) is to add a new buffer list (t_locked_list) to the journal. It contains buffers which have been placed under I/O. So as we walk the t_sync_datalist list we move buffers over to t_locked_list as they are written out. When t_sync_datalist is empty we may then walk t_locked_list waiting for the I/O to complete. As a side-effect this means that we can remove the nasty synchronous wait in journal_dirty_data which is there to avoid the kjournald livelock which would otherwise occur when someone is continuously dirtying a buffer.
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions