Re: fsync on large files

Alan Cox (alan@lxorguk.ukuu.org.uk)
Tue, 16 Feb 1999 16:57:58 +0000 (GMT)


> 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.

Alan

-
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/