[lkml]   [1999]   [Oct]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [patch] [possible race in ext2] Re: how to write get_block?

On 11 Oct 1999 17:58:54 -0500, (Eric W. Biederman)

> What about adding to the end of ext2_alloc_block:

> bh = get_hash_table(inode->i_dev, result, inode->i_sb->s_blocksize);
> /* something is playing with our fresh block, make them stop. ;-) */
> if (bh) {
> if (buffer_dirty(bh)) {
> mark_buffer_clean(bh);
> wait_on_buffer(bh);
> }
> bforget(bh);
> }

Again, it's a lot of extra unnecessary lookups. The advantages of
having a dirty buffer list include being fast, and also massively
speeding up the metadata update part of fsync.

> Ultimately we really want to have indirect blocks, and
> the directory in the page cache as it should result in
> more uniform code, and faster partial truncates (as well as faster
> syncs).

There is one major potential future problem with moving this to the page
cache. At some point I want to be able to extend the large (64G) memory
support on Intel to include the page cache in high memory. The buffer
cache would still live in low memory. If we do that, then moving
filesystem metadata out of permanently-mapped buffer memory and into the
page cache is going to complicate directory and indirect operations


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:54    [W:0.157 / U:1.824 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site