2007-11-13 Thomas Schwinge * inode.c (read_disknode): Adapt to ``struct stat'' changes. 2007-03-25 Thomas Schwinge * inode.c (read_disknode): Correctly convert from nanoseconds to microseconds. 2005-02-23 Alfred M. Szmidt * Makefile (iso9660fs.static): New target. 2003-08-31 Marcus Brinkmann * main.c (diskfs_readonly, diskfs_hard_readonly): Removed. (main): Set diskfs_readonly and diskfs_hard_readonly to one. 2002-09-29 Marcus Brinkmann * Makefile (target): Change to iso9660fs. * main.c (diskfs_server_name): Change to iso9660fs. 2002-08-06 Marcus Brinkmann * 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 * inode.c (diskfs_cached_lookup): Use ino_t for argument. 2002-05-08 Roland McGrath * 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 * rr.c (rrip_work): In the MATCH_NAME case, free NMBUF if it is non-zero before returning. 2001-04-29 Marcus Brinkmann * 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 * lookup.c: Include for abort decl. 2001-02-20 Marcus Brinkmann * inode.c: Include . Reported by Arkadi E. Shishlov . 2001-01-07 Marcus Brinkmann * lookup.c: Make diskfs_dirstat_size const. 2000-12-21 Marcus Brinkmann * rr.c (rrip_work): Use strdup instead malloc and strcpy. Assert that strdup and malloc (for rr->trans) succeeds. * pager.c: Include . (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 . 2000-11-27 Marcus Brinkmann 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 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 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 * 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 * 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 * main.c (diskfs_name_max): New variable. 1999-09-13 Roland McGrath * pager.c: Reverted changes related to io_map_segment. 1999-09-07 Thomas Bushnell, BSG * pager.c (diskfs_get_filemap): Accept additional parameter. 1999-07-10 Roland McGrath * isofs.h: Add #include for munmap decl. 1999-07-09 Thomas Bushnell, BSG * lookup.c (diskfs_get_directs): Use mmap instead of vm_allocate. * pager.c (pager_read_page): Likewise. 1999-07-03 Thomas Bushnell, BSG * lookup.c (diskfs_get_directs): Use munmap instead of vm_deallocate. 1999-06-13 Roland McGrath * lookup.c (diskfs_get_directs): Add cast to silence warning. 1999-01-23 Roland McGrath * main.c (main): Use diskfs_init_main. 1999-01-22 Roland McGrath * rr.c (rrip_work): Remove makedev macro definition. 1998-12-27 Roland McGrath * 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 * inode.c (diskfs_set_statfs): Fill in statfs members with sensible values. Wed Oct 28 22:52:04 1998 Joel N. Weber II * inode.c (read_disknode): Use FSTYPE_ISO9660. 1998-09-04 Roland McGrath * 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 * main.c (diskfs_append_args): New function. 1997-09-19 Miles Bader * 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 * 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 * 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 * pager.c (diskfs_get_filemap): If pager_create fails, return error to caller. Tue Aug 19 14:20:09 1997 Thomas Bushnell, n/BSG * 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 * inode.c (read_disknode): Units of st_blocks are 512 byte chunks, not logical_block_size chunks. 1997-07-22 Miles Bader * Makefile (dir): Is isofs, not ufs. Mon Jul 21 16:00:04 1997 Thomas Bushnell, n/BSG * Makefile (LCLHDRS): Remove susp.h.