lkml.org 
[lkml]   [1999]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: fsync on large files


On Tue, 16 Feb 1999, Alan Cox wrote:

> > in <linux/list.h> (as opposed to the braindamaged BSD compatibility macros
> > in <linux/lists.h>), and it's fairly trivial to just keep each dirty block
> > on two dirty lists (one inode-specific, one global - you'd still use the
> > global one for normal write-outs).
> >
> > This works for ext2, but it doesn't work with filesystems (most notably
> > FAT filesystems, and possibly some B-tree based filesystems) where
> > metadata might be shared by multiple files, so a block might have to be
> > on multiple inode dirty lists. I had thought about using a linked list
> > architecture and threading buffer_head structures onto inode dirty
> > linked lists, but I discarded that plan since it wouldn't work for all
> > filesystems.
>
> As a percentage the number of 'shared blocks' is low. So just keep a single
> 'might be shared list' and write that list out too.

That really starts to resemble *BSD buffer cache architecture - they just
index buffer cache by inode + offset instead of device + offset, assign
negative offsets to metadata (on normal filesystems) and for FAT they keep
metadata assigned to the device itself.


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

\
 
 \ /
  Last update: 2005-03-22 13:50    [W:0.111 / U:1.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site