2007-11-13  Thomas Schwinge  <tschwinge@gnu.org>

	* inode.c (read_disknode): Adapt to ``struct stat'' changes.

2007-03-25  Thomas Schwinge  <tschwinge@gnu.org>

	* inode.c (read_disknode): Correctly convert from nanoseconds to
	microseconds.

2005-02-23  Alfred M. Szmidt  <ams@gnu.org>

	* Makefile (iso9660fs.static): New target.

2003-08-31  Marcus Brinkmann  <marcus@gnu.org>

	* main.c (diskfs_readonly, diskfs_hard_readonly): Removed.
	(main): Set diskfs_readonly and diskfs_hard_readonly to one.

2002-09-29  Marcus Brinkmann  <marcus@gnu.org>

	* Makefile (target): Change to iso9660fs.
	* main.c (diskfs_server_name): Change to iso9660fs.

2002-08-06  Marcus Brinkmann  <marcus@gnu.org>

	* inode.c (use_file_start_id): Use file_start for directories, so
	the inode of the directory is used for the ".." entries in all
	sub-directories.  Contrary to ChangeLog entry 2001-11-27, this is
	safe, because the ISO9660 specification mandates that the first
	entry in every directory must be ".", so a non-file_start using
	directory record can not be the first one.

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

	* inode.c (diskfs_cached_lookup): Use ino_t for argument.

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

	* rr.c (rrip_work): Cast pointer to uintptr_t instead of int.

	* main.c (diskfs_append_args): unsigned -> size_t
	* lookup.c (diskfs_get_directs): Likewise.

2001-04-30  Marcus Brinkmann  <marcus@gnu.org>

	* rr.c (rrip_work): In the MATCH_NAME case, free NMBUF if it is
	non-zero before returning.

2001-04-29  Marcus Brinkmann  <marcus@gnu.org>

	* lookup.c (diskfs_get_directs): If an RE entry is encountered,
	just decrement I again. Rearrange the code to check for a new
	logical sector in any case. Also make sure to always release RR
	before returning. This fixes some memory leaks and Debian bug
	report #63373.

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

	* lookup.c: Include <stdlib.h> for abort decl.

2001-02-20  Marcus Brinkmann  <marcus@gnu.org>

	* inode.c: Include <time.h>. Reported by Arkadi E. Shishlov
	<arkadi@it.lv>.

2001-01-07  Marcus Brinkmann  <marcus@gnu.org>

	* lookup.c: Make diskfs_dirstat_size const.

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

	* rr.c (rrip_work): Use strdup instead malloc and strcpy.
	Assert that strdup and malloc (for rr->trans) succeeds.
	* pager.c: Include <errno.h>.
	(create_disk_pager): If malloc fails, exit with error.
	* main.c (read_sblock): Fail if malloc does.
	* inode.c (diskfs_cached_lookup): When allocating memory for dn or
	np fails, release spinlock, rrip (and allocated memory) and return
	ENOMEM.
	(load_inode): Likewise (but no rrip). Also, if *npp is non-zero,
	release diskfs_node_refcnt_lock before returning.
	Reported by Igor Khavkine <i_khavki@alcor.concordia.ca>.

2000-11-27  Marcus Brinkmann  <marcus@gnu.org>

	The last two changes introduced two new inode overlaps
	(file_start was not shifted by store block size, and directories'
	shifted file_start offset can be the same as the struct dirrect
	offset of their first directory entry).

	* inode.c (use_file_start_as_id): New function to determine
	if to use file_start or struct dirrect * as node id.
	The directory recognition code comes from read_disknode.
	(cache_inode): Use use_file_start_as_id instead doing the work
	ourselve. Shift file_start by store->log2_block_size.
	(load_inode): Likewise.
	* lookup.c (diskfs_get_directs): Likewise.
	Declare use_file_start_id.

2000-11-26  Marcus Brinkmann  <marcus@gnu.org>

	Fix hard link handling for non-zero length files.
	* inode.c: Fix comment about inode numbers.
	(node_cache): New member ID to store unique identifier.
	(inode_cache_find): Change RECORD arg into ID and compare it
	with id member of node_cache.
	(cache_inode): Swap order of args and add new arg RR (change dr
	into record along the way). Use RR to find out cache ID.
	Use id member of node_cache to look for ID. Cache ID.
	(load_inode): Call inode_cache_find with correct ID, depending
	on RR and file size. Frob arguments to cache_inode to comply with
	the new definition.
	(read_disknode): Set st_ino according depending on RR and file size.
	* lookup.c: Doc spelling fix.
	(diskfs_get_directs): Include code again that was removed by last change,
	but use it only if not symlink or zero length file.

2000-11-26  Marcus Brinkmann  <marcus@gnu.org>

	Closes Debian Bug #68417:
	* rr.c (rrip_work): In helper function add_comp set targused to
	zero after malloc, and loop over realloc in case doubling is not
	enough.  After finalizing the link, set VALID_SL valid flag.
	* inode.c (read_disknode): For links use rl->target instead
	rl->name.

	Closes Debian Bug #69281: Don't use file_start as inode numbers,
	but the offset of the directory record in disk_image. This is what
	Linux 2.4 does.
	* isofs.h (struct disknode): New member struct dirrect *dr.
	* inode.c: Fix comment about inode numbers.
	(struct node_cache): Fix comment about file_start (it's not unique).
	In fact, file_start is invalid for symlinks, and only stored here
	for convenience. Maybe caching file_start can be avoided by
	rearranging the code.
	(inode_cache_find): Change first argument from off_t file_start
	to struct dirrect *dr and fix the doc.
	Compare cached value of DR with this argument, instead FILE_START.
	(diskfs_cached_lookup): Set DR member of DN.
	(load_inode): Call inode_cache_find with RECORD instead FILE_START.
	Set DR member of DN.
	(read_disknode): Set inode number to DR - DISK_IMAGE instead
	FILE_START.
	* lookup.c (diskfs_get_directs): Remove variable file_start.
	Don't calculate file_start. Set D_FILENO to EP - DISK_IMAGE
	instead FILE_START.

2000-07-26  Mark Kettenis  <kettenis@gnu.org>

	* Makefile (HURDLIBS): Reorder libs such that the threads lib
	comes before the ports lib.  This makes sure the functions in
	libthreads properly override the stubs in libports with the new
	dynamic linker semantics in glibc 2.2.

1999-11-20  Roland McGrath  <roland@baalperazim.frob.com>

	* lookup.c (dirscanblock): Add const to type of NAME parameter.
	(isonamematch): Likewise.
	* rr.c (rrip_match_lookup): Likewise.
	(rrip_work): Likewise.  Change char -> size_t for MATCH_NAMELEN.
	* rr.h: Update decls.

1999-10-13  Roland McGrath  <roland@baalperazim.frob.com>

	* main.c (diskfs_name_max): New variable.

1999-09-13  Roland McGrath  <roland@baalperazim.frob.com>

	* pager.c: Reverted changes related to io_map_segment.

1999-09-07  Thomas Bushnell, BSG  <tb@mit.edu>

	* pager.c (diskfs_get_filemap): Accept additional parameter.

1999-07-10  Roland McGrath  <roland@baalperazim.frob.com>

	* isofs.h: Add #include <sys/mman.h> for munmap decl.

1999-07-09  Thomas Bushnell, BSG  <tb@mit.edu>

	* lookup.c (diskfs_get_directs): Use mmap instead of vm_allocate.
	* pager.c (pager_read_page): Likewise.

1999-07-03  Thomas Bushnell, BSG  <tb@mit.edu>

	* lookup.c (diskfs_get_directs): Use munmap instead of
	vm_deallocate.

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

	* lookup.c (diskfs_get_directs): Add cast to silence warning.

1999-01-23  Roland McGrath  <roland@baalperazim.frob.com>

	* main.c (main): Use diskfs_init_main.

1999-01-22  Roland McGrath  <roland@baalperazim.frob.com>

	* rr.c (rrip_work): Remove makedev macro definition.

1998-12-27  Roland McGrath  <roland@baalperazim.frob.com>

	* inode.c (diskfs_set_statfs): Remove __ from struct statfs members.
	Use bzero first instead of setting individual fields to zero.

1998-12-21  Mark Kettenis  <kettenis@phys.uva.nl>

	* inode.c (diskfs_set_statfs): Fill in statfs members with
	sensible values.

Wed Oct 28 22:52:04 1998  Joel N. Weber II  <devnull@methedrine.ai.mit.edu>

	* inode.c (read_disknode): Use FSTYPE_ISO9660.

1998-09-04  Roland McGrath  <roland@baalperazim.frob.com>

	* lookup.c (diskfs_lookup_hard): Fix defn with `const'.
	(diskfs_direnter_hard): Likewise.
	(diskfs_get_directs): Use `const' for local var NAME.
	* inode.c (diskfs_set_translator): Fix defn with `const'.

1997-09-22  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (diskfs_append_args): New function.

1997-09-19  Miles Bader  <miles@gnu.ai.mit.edu>

	* rr.h (GNUEXT_ID): Make value a string.
	* rr.c (rrip_work): ER->lenid should be ER->len_id.
	Remove unused variable.

1997-09-18  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (read_disknode): RR should be RL.
	Assign 0's type-correctly to NP->dn->translator and ->translen.
	(diskfs_node_norefs): The translator field is in NP->dn, not NP.

Tue Sep 16 15:34:21 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* rr.c (gnuext_live): New variable.
	(rrip_work): Comprehend AU, TR, MD, and FL, all as GNU
	extensions.  Recognize GNU extension id field when processing ER
	fields.
	(release_rrip): Free RR->trans if it's live.
	* inode.c (read_disknode): Interpret and install the values set by
	AU, TR, MD, and FL extensions.
	(diskfs_node_norefs): Free NP->translator if it's set.
	* isofs.h (struct disknode): New members `translen' and
	`translator'.
	* rr.h (struct gn_au, struct gn_tr, struct gn_md, struct gn_fl):
	New strucures.
	(GNUEXT_SRC, GNUEXT_DES, GNUEXT_ID, GNUEXT_VERS): New macros.
	(struct rrip_lookup): New members author, translen, trans,
	allmode, flags.
	(VALID_AU, VALID_TR, VALID_MD, VALID_FL): New macros.

	* Makefile (DIST_FILES): Add, referring to EXTENSIONS.
	* EXTENSIONS: New file.

Wed Aug 20 14:29:11 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* pager.c (diskfs_get_filemap): If pager_create fails, return
	error to caller.

Tue Aug 19 14:20:09 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* rr.c (rrip_work) [SL]: Component length field does not include
	the two header bytes, so add an extra two in advancing the pointer
	past the component.

Thu Aug  7 16:01:29 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* inode.c (read_disknode): Units of st_blocks are 512 byte chunks,
	not logical_block_size chunks.

1997-07-22  Miles Bader  <miles@gnu.ai.mit.edu>

	* Makefile (dir): Is isofs, not ufs.

Mon Jul 21 16:00:04 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (LCLHDRS): Remove susp.h.
