Age | Commit message (Collapse) | Author |
|
* rr.c (rrip_work): In the MATCH_NAME case, free NMBUF if it is non-zero
before returning.
|
|
* 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.
|
|
|
|
* lookup.c: Include <stdlib.h> for abort decl.
|
|
* inode.c: Include <time.h>. Reported by Arkadi E. Shishlov
<arkadi@it.lv>.
|
|
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* hurd.texi (Diskfs Callbacks): Make diskfs_dirstat_size const.
ext2fs/
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* dir.c: Make diskfs_dirstat_size const.
isofs/
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* lookup.c: Make diskfs_dirstat_size const.
ufs/
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* dir.c: Make diskfs_dirstat_size const.
libdiskfs/
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* diskfs.h: Make diskfs_dirstat_size const.
libdiskfs/
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* file-statfs.c: Include <string.h>.
ftpfs/
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* dir.c (ftpfs_dir_create): Fix last change (calloc invocation).
2001-01-07 Marcus Brinkmann <marcus@gnu.org>
* copy.c: Include <mach.h>. New macro page_aligned.
(copy_write): Cast buf to vm_address_t in call to vm_write.
Dereference amount for memcpy.
(copy_read): Add len parameter to vm_read, remove redundant following
len assignment.
|
|
* 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>.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
* 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.
|
|
|
|
* main.c (diskfs_name_max): New variable.
|
|
|
|
* pager.c (diskfs_get_filemap): Accept additional parameter.
|
|
* lookup.c (diskfs_get_directs): Use mmap instead of vm_allocate.
* pager.c (pager_read_page): Likewise.
|
|
|
|
* isofs.h: Add #include <sys/mman.h> for munmap decl.
|
|
* lookup.c (diskfs_get_directs): Use munmap instead of
vm_deallocate.
|
|
|
|
* lookup.c (diskfs_get_directs): Add cast to silence warning.
|
|
|
|
* rr.c (rrip_work): Remove makedev macro definition.
|
|
* main.c (main): Use diskfs_init_main.
|
|
|
|
* inode.c (diskfs_set_statfs): Remove __ from struct statfs members.
Use bzero first instead of setting individual fields to zero.
|
|
|
|
* inode.c (diskfs_set_statfs): Fill in statfs members with
sensible values.
|
|
|
|
|
|
* inode.c (read_disknode): Use FSTYPE_ISO9660.
|
|
|
|
* 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'.
|
|
|
|
New function.
|
|
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.
|
|
|
|
ER->lenid should be ER->len_id.
Remove unused variable C.
|
|
Make value a string.
|
|
* Makefile (DIST_FILES): Add, referring to EXTENSIONS.
* EXTENSIONS: New file.
|
|
* 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.
|
|
* pager.c (diskfs_get_filemap): If pager_create fails, return
error to caller.
|
|
* 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.
|
|
* inode.c (read_disknode): Units of st_blocks are 512 byte chunks,
not logical_block_size chunks.
|
|
|
|
Is isofs, not ufs.
|
|
* Makefile (LCLHDRS): Remove susp.h.
|
|
|