2009-02-02  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* tmpfs.h (struct disknode): Make atime, mtime and ctime members
	struct timespec instead of time_t.
	* tmpfs.c (main): Copy st_atim/st_mtim/st_ctim members from st to
	diskfs_root_node->dn_stat instead of st_atime/st_mtime/st_ctime.
	* node.c (diskfs_node_norefs): Copy st_atime/st_mtime/st_ctime
	members from np->dn_stat to atime/mtime/ctime members of np->dn
	(diskfs_cached_lookup): Conversely.

2005-03-20  Marcus Brinkmann  <marcus@gnu.org>

	* tmpfs.c (parse_opt): Use the right argument for parsing the
	mode.

2002-06-14  Roland McGrath  <roland@frob.com>

	* tmpfs.c (main): If get_privileged_ports fails with EPERM, try to
	open /servers/default-pager instead.

2002-06-13  Roland McGrath  <roland@frob.com>

	* dir.c (diskfs_lookup_hard): Cast int to intptr_t before ino_t.

	* dir.c (diskfs_lookup_hard): int -> ino_t

2002-06-08  Roland McGrath  <roland@frob.com>

	* node.c (diskfs_cached_lookup): Use ino_t for argument.
	* node.c (diskfs_alloc_node): Case to uintptr_t before ino_t.
	(diskfs_cached_lookup): Likewise, and vice versa.
	* dir.c (diskfs_get_directs, diskfs_lookup_hard): Likewise.

	* tmpfs.c (diskfs_append_args): Use %Ld format for off_t value.

2002-05-29  Roland McGrath  <roland@frob.com>

	* node.c (diskfs_S_file_get_storage_info): Return a null port when the
	peropen is not open for read/write.  Set STORE_READONLY if O_WRITE set.

2002-05-28  Roland McGrath  <roland@frob.com>

	* dir.c (diskfs_get_directs): u_int -> size_t
	* tmpfs.c (diskfs_append_args): unsigned -> size_t

2002-05-13  Marcus Brinkmann  <marcus@gnu.org>

	* tmpfs.c (diskfs_extra_version): New variable.

2002-05-03  Roland McGrath  <roland@frob.com>

	* tmpfs.c (startup_argp): Use OPTIONS array in initializer.

2002-03-23  Roland McGrath  <roland@frob.com>

	* tmpfs.c (parse_opt): Grok % suffix on number to mean percentage
	of the machine's RAM.

	* tmpfs.c (options): New static const variable.  Add --mode/-m.
	(struct option_values): New type.
	(parse_opt): Use that for VALUES.  Grok -m to set VALUES->mode.
	Grok ARGP_KEY_FINI and free our data structure.
	(tmpfs_root_mode): New variable, set by -m.
	(main): If -m was given, use that instead of underlying node's
	permissions.

	* tmpfs.c (main): Don't release REALNODE.

	* node.c: Include "default_pager_U.h", not <mach/default_pager.h>.
	(diskfs_truncate): Return early if page-rounded size is unchanged.
	Call default_pager_object_set_size on the memory object.
	(diskfs_grow): Likewise.

	* Makefile (OBJS): Add default_pagerUser.o here.

2001-09-30  Roland McGrath  <roland@frob.com>

	* node.c (diskfs_S_file_get_storage_info): Implement it to return
	the memory object port with STORAGE_MEMORY.

2001-04-23  Neal H Walfield  <neal@cs.uml.edu>

	* tmpfs.c (main): Pass diskfs_demuxer to
	diskfs_spawn_first_thread to conform to new libdiskfs semantics.

2001-05-05  Roland McGrath  <roland@frob.com>

	* node.c (diskfs_truncate): Set st_size before rounding it up,
	and do set it when there is a memory object.

2001-05-01  Neal H Walfield  <neal@cs.uml.edu>

        * tmpfs.c (main): Set diskfs_root_node->dn_stat.st_nlink to 2.

2001-04-15  Neal H Walfield  <neal@cs.uml.edu>

	* dir.c (diskfs_get_directs): Total rewrite.
	(diskfs_lookup_hard): Likewise.
	(diskfs_enter_hard): Count node size in the size of the dirent so
	diskfs_get_directs does not have to guess; this is only a few
	bytes different.  Check the amount of space correctly, i.e.
	we cannot compare bytes and pages.
	* node.c: (diskfs_free_node): We already hold
	diskfs_node_refcnt_lock; do not try to lock it again.
	(diskfs_cached_lookup): Use diskfs_nref, that is why we have it.
	Link the nodes correctly.
	(diskfs_set_translator): Add or remove S_IPTRANS from
	np->dn_stat.st_mode as appropriate.
	(diskfs_truncate): Set the new np->dn_stat.st_size.
	(diskfs_grow): Move the assert up.

2001-04-10  Neal H Walfield  <neal@cs.uml.edu>

        * tmpfs.c (diskfs_shortcurt_chrdev): Rename to diskfs_shortcut_chrdev.
        (diskfs_shortcurt_blkdev): Rename to diskfs_shortcut_blkdev.
        (diskfs_shortcurt_fifo): Rename to diskfs_shortcut_fifo.
        (diskfs_shortcurt_ifsock): Rename to diskfs_shortcut_ifsock.

2001-02-26  Roland McGrath  <roland@frob.com>

	* node.c (diskfs_free_node): Reset hnext's hprevp.
	(diskfs_node_norefs): Likewise.
	(diskfs_cached_lookup): Fix insane code for finding existing node ptr.
	(diskfs_get_filemap_pager_struct): Remove spurious assert.
	(diskfs_get_filemap): Always add a reference to the send right.

	* dir.c (diskfs_get_directs): When using st_size, calculate additional
	space for . and .. entries.  Skip . and .. entries when ENTRY says to.
	Set d_fileno=2 for .. entry when it is the parent of the filesystem.

	* tmpfs.c (main): Don't lock diskfs_root_node after alloc,
	which already locks it.  In root node's mode, clear S_ITRANS bits
	and set S_IROOT bit.

2001-02-25  Roland McGrath  <roland@frob.com>

	* pager-stubs.c: New file.
	* Makefile (SRCS): Add it.

	* node.c (diskfs_S_file_get_storage_info): New function.
	* tmpfs.c (diskfs_synchronous): New variable.

	* dir.c (diskfs_lookup_hard): Look up .. disknode's in-core node.

	* node.c: #include <mach/default_pager.h>.

2000-12-30  Marcus Brinkmann  <marcus@gnu.org>

	* dir.c: Include <stddef.h>, <unistd.h>, <sys/mman.h>
	(diskfs_get_directs): Cast *data to struct dirent *.

	* node.c: Include <stddef.h>.
	(diskfs_alloc_node): Remove unused variables err, st, np.
	(diskfs_free_node): Use *np->dn, not *dn to calculate used space.
	(recompute_blocks): Replace DT_DEV with DT_BLK.
	(diskfs_node_norefs): Likewise.
	(recompute_blocks): Take address of np->dn_stat for pointer st.
	(diskfs_cached_lookup): New variable st.
	(diskfs_cached_lookup): Set st to &np->dn_stat, not &dn->dn_stat.
	(create_symlink_hook): Fix malloc call and return code check.
	(read_symlink_hook): Return 0.

	* tmpfs.c: Include <argp.h>, <string.h>, <inttypes.h>, <argz.h>,
	<error.h>.
	(parse_opt): Reverse second and third argument of strtoimax call.

	* tmpfs.h (struct disknode): Remove blind passenger (unnamed copy
	of anonymous struct {} reg).

	Some of the above were also reported by Alexey Dejneka
	<adejneka@comail.ru>.

2000-12-28  Roland McGrath  <roland@frob.com>

	* node.c (recompute_blocks): New function, broken out of ...
	(diskfs_cached_lookup): here.  Now use call that.
	(diskfs_set_translator): Likewise.
	(create_symlink_hook): Likewise.  Do nothing for zero-length target.

2000-12-26  Roland McGrath  <roland@frob.com>

	* Makefile, tmpfs.c, tmpfs.h, node.c, dir.c: New files.
