head	1.4;
access;
symbols
	V1_6_7:1.4
	V1_6_6:1.4
	V1_6_5:1.4
	V1_6_4:1.4
	V1_6_3:1.4
	V1_6_2:1.4
	V1_6_1:1.2
	V1_6:1.2
	V1_5_2:1.2
	V1_4_1:1.2
	V1_4:1.2
	V1_3_3:1.2
	V1_3_1:1.1
	V1_3:1.1;
locks; strict;
comment	@# @;


1.4
date	98.12.10.13.50.38;	author vandys;	state Exp;
branches;
next	1.3;

1.3
date	98.12.01.21.05.37;	author vandys;	state Exp;
branches;
next	1.2;

1.2
date	94.11.24.06.30.53;	author vandys;	state Exp;
branches;
next	1.1;

1.1
date	94.03.01.17.22.58;	author vandys;	state Exp;
branches;
next	;


desc
@To do list
@


1.4
log
@Some optimizations
@
text
@X Make sure directory entries are not honored in EXTSIZ-allocated
X 	storage at end of dir file.

X Make sure on file expansion that we don't read in the new space
X 	from disk.

X Add a "first sector dirty" flag so we don't have to flush the first
X 	full extent just to update fs_file
X 	In fact, add interface of dirtying a range.  Allows for a
X 	bitmap in the future.

X Add a "only first sector is valid" flag, so we don't have to read
X 	the whole 64K of a file just to do a stat--just read the
X 	1st sector which holds all the file information.

Directory block allocation is stupid--it will always be maximally
	fragmented.  Perhaps use a power-of-two progression when
	allocating extents?  Certainly can't use the default file
	allocation algorithm--the usage pattern is too different.

X Ensure deletion of a directory can't happen unless it's empty.

Directory rename.  Does it work?

X fsck--when find "lost" blocks need to add back to free list

Buffers shouldn't be moving on resize.  We should use a 64K-sized
	buffer and just munmap() (or something) the trailing pages.

Flushing as you go is wasteful.  We need a "transaction" data structure
	so we can explicitly order the writes needed to complete a
	filesystem operation safely.

The "transaction" should be tagged under the open file.  This allows
	fsync() to be turned into a "commit" of the transaction.

A file which has been opened chmod/write will results in a buffer
	cache flush when it closes.  We should add a flag to indicate
	whether the file has been modified in some way, so that
	passive stat's of the file (which may have ACC_CHMOD, but
	they don't use it) don't churn the buffer cache for no reason.

We should flag DIRTY0 distinct from having the whole buffer dirty.
	That way, as later extents in the file get populated we only
	have to go back and update the file header, not the entire
	extent which holds the file header.
@


1.3
log
@Update.  I've been busy. :->
@
text
@d36 11
@


1.2
log
@*** empty log message ***
@
text
@d1 2
a2 2
Make sure directory entries are not honored in EXTSIZ-allocated
	storage at end of dir file.
d4 2
a5 2
Make sure on file expansion that we don't read in the new space
	from disk.
d7 8
a14 8
Add a "first sector dirty" flag so we don't have to flush the first
	full extent just to update fs_file
	In fact, add interface of dirtying a range.  Allows for a
	bitmap in the future.

Add a "only first sector is valid" flag, so we don't have to read
	the whole 64K of a file just to do a stat--just read the
	1st sector which holds all the file information.
d21 1
a21 1
Ensure deletion of a directory can't happen unless it's empty.
d25 1
a25 1
fsck--when find "lost" blocks need to add back to free list
@


1.1
log
@Initial revision
@
text
@d12 4
d22 14
@
