| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Make several functions static.
|
|
|
|
|
|
| |
Drop IMFS_node_control::node_size field and add node_size parameter to
IMFS_allocate_node() and IMFS_create_node(). This reduces the size of
generic nodes.
|
|
|
|
|
|
| |
This reduces the average node size.
Add and use IMFS_GENERIC_INITIALIZER().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ftruncate() and open() with O_TRUNC shall upon successful completion
mark for update the st_ctime and st_mtime fields of the file.
truncate() shall upon successful completion, if the file size is
changed, mark for update the st_ctime and st_mtime fields of the file.
The POSIX standard "The Open Group Base Specifications Issue 7", IEEE
Std 1003.1, 2013 Edition says nothing about the behaviour of truncate()
if the file size remains unchanged.
Future directions of the standard may mandate the behaviour specified in
ftruncate():
http://austingroupbugs.net/view.php?id=489
|
| |
|
| |
|
|
|
|
|
|
|
| |
It is now the responsibility of the read() and write() handler to update
the offset field of the IO descriptor (rtems_libio_t). This change
makes it possible to protect the IO descriptor from concurrent access by
per file locks.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
|
|
|
| |
Space that grows due to truncate or write offsets beyond the current
file size must be zero filled.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to POSIX the lseek() function shall not, by itself, extend the
size of a file.
Remove the size field of rtems_libio_t. A file has only one size but
may have multiple open file descriptors. Thus a file size field in the
file descriptor may lead to inconsistencies.
New default handlers rtems_filesystem_default_lseek_file() and
rtems_filesystem_default_lseek_directory().
|
|
|
|
|
|
| |
Add and use structure IMFS_node_control with support functions. This
helps to make high level functions independent of the node type and
reduces the number of branches in the code.
|
|
|
|
| |
Add and use IMFS_type() and IMFS_is_directory().
|
|
|
|
|
| |
The introduction of reference counting of nodes avoids the removal of
open nodes and potential usage of freed memory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o A new data structure rtems_filesystem_global_location_t was
introduced to be used for
o the mount point location in the mount table entry,
o the file system root location in the mount table entry,
o the root directory location in the user environment, and
o the current directory location in the user environment.
During the path evaluation global start locations are obtained to
ensure that the current file system instance will be not unmounted in
the meantime.
o The user environment uses now reference counting and is protected
from concurrent access.
o The path evaluation process was completely rewritten and simplified.
The IMFS, RFS, NFS, and DOSFS use now a generic path evaluation
method. Recursive calls in the path evaluation have been replaced
with iteration to avoid stack overflows. Only the evaluation of
symbolic links is recursive. No dynamic memory allocations and
intermediate buffers are used in the high level path evaluation. No
global locks are held during the file system instance specific path
evaluation process.
o Recursive symbolic link evaluation is now limited by
RTEMS_FILESYSTEM_SYMLOOP_MAX. Applications can retrieve this value
via sysconf().
o The device file system (devFS) uses now no global variables and
allocation from the workspace. Node names are allocated from the
heap.
o The upper layer lseek() performs now some parameter checks.
o The upper layer ftruncate() performs now some parameter checks.
o unmask() is now restricted to the RWX flags and protected from
concurrent access.
o The fchmod_h and rmnod_h file system node handlers are now a file
system operation.
o The unlink_h operation has been removed. All nodes are now destroyed
with the rmnod_h operation.
o New lock_h, unlock_h, clonenod_h, and are_nodes_equal_h file system
operations.
o The path evaluation and file system operations are now protected by
per file system instance lock and unlock operations.
o Fix and test file descriptor duplicate in fcntl().
o New test fstests/fsnofs01.
|
|
|
|
|
|
| |
* libfs/src/imfs/imfs_debug.c: Make IMFS_print_jnode,
IMFS_dump_directory static.
* libfs/src/imfs/memfile.c: Make memfile_free_blocks_in_table static.
|
|
|
|
|
|
|
| |
PR1945/cpukit
* libfs/src/imfs/deviceio.c, libfs/src/imfs/imfs.h,
libfs/src/imfs/imfs_directory.c, libfs/src/imfs/imfs_fifo.c,
libfs/src/imfs/memfile.c: Replace rtems_off64_t with off_t.
|
|
|
|
|
| |
* libfs/src/imfs/memfile.c (memfile_ioctl): Remove unused var
"the_jnode".
|
|
|
|
|
|
|
|
|
| |
PR 1877/cpukit
* libfs/src/imfs/imfs_mknod.c, libfs/src/imfs/memfile.c,
sapi/inline/rtems/rbtree.inl, score/include/rtems/score/rbtree.h,
score/inline/rtems/score/rbtree.inl, score/src/rbtree.c,
score/src/rbtreefind.c, score/src/rbtreeinsert.c: Add comparison
function for RBTrees.
|
|
|
|
|
| |
PR 1701/filesystems
* libfs/src/imfs/memfile.c: Fix sense of assert.
|
|
|
|
|
|
| |
PR 1693/filesystem
* libfs/src/imfs/memfile.c: IMFS_memfile_get_block_pointer() was
checking incorrect pointer and thus had dead code.
|
|
|
|
|
|
|
|
| |
* libcsupport/src/fstat.c, libcsupport/src/rmdir.c,
libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_creat.c,
libfs/src/imfs/imfs_debug.c, libfs/src/imfs/imfs_getchild.c,
libfs/src/imfs/memfile.c: Add IMFS_assert. Clean up and remove all
checks which are redundant with system call layer. Formatting.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/include/rtems/libio.h: Removed file_info and handlers
fields in rtems_libio_t.
* libcsupport/src/close.c, libcsupport/src/fcntl.c,
libcsupport/src/fdatasync.c, libcsupport/src/fstat.c,
libcsupport/src/fsync.c, libcsupport/src/ftruncate.c,
libcsupport/src/getdents.c, libcsupport/src/ioctl.c,
libcsupport/src/libio_sockets.c, libcsupport/src/lseek.c,
libcsupport/src/open.c, libcsupport/src/read.c,
libcsupport/src/readv.c, libcsupport/src/write.c,
libcsupport/src/writev.c, libfs/src/devfs/devclose.c,
libfs/src/devfs/devioctl.c, libfs/src/devfs/devopen.c,
libfs/src/devfs/devread.c, libfs/src/devfs/devwrite.c
libfs/src/dosfs/msdos_dir.c libfs/src/dosfs/msdos_file.c
libfs/src/imfs/deviceio.c libfs/src/imfs/imfs_directory.c
libfs/src/imfs/imfs_fifo.c libfs/src/imfs/memfile.c
libfs/src/nfsclient/src/nfs.c libfs/src/rfs/rtems-rfs-rtems-file.c
libfs/src/rfs/rtems-rfs-rtems.h libnetworking/lib/ftpfs.c: Reflect
changes above.
|
|
|
|
|
| |
PR 1594/filesystem
* libfs/src/imfs/memfile.c: Include assert.h
|
|
|
|
| |
* libfs/src/imfs/memfile.c: Fix assert.
|
|
|
|
|
|
|
|
|
| |
* libfs/src/imfs/imfs_creat.c, libfs/src/imfs/imfs_debug.c,
libfs/src/imfs/imfs_directory.c, libfs/src/imfs/imfs_eval.c,
libfs/src/imfs/imfs_fsunmount.c, libfs/src/imfs/imfs_getchild.c,
libfs/src/imfs/imfs_initsupp.c, libfs/src/imfs/ioman.c,
libfs/src/imfs/memfile.c: Evaluate all assert calls in IMFS. Either
made them conditional on RTEMS_DEBUG or eliminated them.
|
|
|
|
|
|
|
|
|
|
|
| |
* libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_rmnod.c: Added and use
IMFS_create_orphan() and IMFS_check_node_remove().
* libfs/src/imfs/deviceio.c, libfs/src/imfs/imfs_directory.c,
libfs/src/imfs/imfs_fifo.c: Use IMFS_create_orphan() and
IMFS_check_node_remove().
* libfs/src/imfs/imfs_handlers_memfile.c, libfs/src/imfs/memfile.c:
Use IMFS_rmnod() and IMFS_check_node_remove() instead of
memfile_rmnod() and memfile_check_rmnod().
|
|
|
|
|
| |
Coverity Id 12
* libfs/src/imfs/memfile.c: Check for NULL return value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libblock/src/bdbuf.c: Update comments.
* libblock/src/bdpart.c, libblock/src/ide_part_table.c: Get the
device from the rdev field of the stat buf.
* libcsupport/include/rtems/libio.h: Add a path length to evalpath
handler. Add parent locations to rmmod and unlink handlers.
* libcsupport/include/rtems/libio_.h: Add a path length to
rtems_filesystem_evaluate_path. Add
rtems_filesystem_evaluate_relative_path, rtems_filesystem_dirname,
and rtems_filesystem_prefix_separators. Remove
rtems_filesystem_evaluate_parent.
* libcsupport/src/base_fs.c, libcsupport/src/chdir.c,
libcsupport/src/chmod.c, libcsupport/src/chown.c,
libcsupport/src/chroot.c, libcsupport/src/fchdir.c,
libcsupport/src/link.c, libcsupport/src/mount.c,
libcsupport/src/open.c, libcsupport/src/privateenv.c,
libcsupport/src/readlink.c, libcsupport/src/unmount.c,
libcsupport/src/utime.c, libcsupport/src/unmount.c,
libcsupport/src/utime.c, libfs/src/devfs/devfs.h,
libfs/src/devfs/devfs_eval.c, libfs/src/devfs/devstat.c,
libfs/src/dosfs/msdos_create.c, libfs/src/dosfs/msdos_misc.c,
libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_eval.c,
libfs/src/imfs/imfs_load_tar.c, libfs/src/imfs/ioman.c,
libfs/src/pipe/pipe.c, libmisc/fsmount/fsmount.c,
libnetworking/lib/ftpfs.c: Add the length parameter to the eval
call.
* libcsupport/src/eval.c: Add rtems_filesystem_prefix_separators,
rtems_filesystem_dirname,
rtems_filesystem_evaluate_relative_path. Add the length parameter
to the eval call.
* libcsupport/src/rmdir.c: Find the parent pathloc then the node
pathloc from that node. Remove the call to find the parent given
the node pathloc.
* libcsupport/src/stat.c: Add the length parameter to the eval
call. Set the device into the rdev field.
* libcsupport/src/unlink.c: Find the parent pathloc then the node
pathloc from that node. Remove the call to find the parent given
the node pathloc.
* libfs/src/dosfs/fat.c, libfs/src/dosfs/msdos_format.c: Get the
disk device number from the stat rdev field.
* libfs/src/dosfs/msdos.h: Add the length parameter to the eval
call. Add the parent pathloc to the rmnod handler.
* libfs/src/dosfs/msdos_dir.c: Add the parent pathloc to the rmnod
handler.
* libfs/src/dosfs/msdos_eval.c: Add the length parameter to the
eval and token call.
* libfs/src/imfs/imfs_directory.c: Add the parent pathloc to the
rmnod handler.
* libfs/src/imfs/imfs_fchmod.c: Do not test the mode flags for
only the allowed flags. Add the missing flags spec'ed in the POSIX
standard.
* libfs/src/imfs/imfs_fsunmount.c, libfs/src/imfs/imfs_rmnod.c,
libfs/src/imfs/imfs_unlink.c, libfs/src/imfs/memfile.c: Add the
parent node. Currently ignored in the IMFS.
* libfs/src/imfs/imfs_stat.c: Return the device number in the rdev
field.
* libfs/src/imfs/imfs_mknod.c, libfs/src/imfs/imfs_symlink.c : Add
the length parameter to the token call.
* libfs/src/nfsclient/src/nfs.c: Add the length parameter to the
eval call and parent node to the rmnod and unlink command.
* libmisc/shell/internal.h: Remove the libc mounter decl to make
public.
* libmisc/shell/main_mount.c: Add support for hooking external
mount support for new file systems.
* libmisc/shell/shell.h: Add helper functions for the mount
command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/include/rtems/libio.h: Add rtems_off64_t for
internal use. Update the internal off_t to the 64bit offset.
* libnetworking/lib/ftpfs.c, libnetworking/lib/tftpDriver.c,
libfs/src/nfsclient/src/nfs.c, libfs/src/imfs/imfs_fifo.c,
libfs/src/imfs/memfile.c, libfs/src/imfs/imfs_directory.c,
libfs/src/imfs/imfs.h, libfs/src/imfs/deviceio.c: Change off_t to
rtems_off64_t.
* libmisc/shell/main_msdosfmt.c: Add an info level so the format
code can tell the user what is happening. Add more options to
control the format configuration.
* libfs/src/dosfs/msdos_format.c: Add a print function to display
the format progress and print statements. Select a better default
cluster size depending on the size of the disk. This lowers the
size of the FAT on large disks. Read and maintain the MRB
partition information.
* libfs/src/dosfs/dosfs.h, libfs/src/dosfs/fat.h,
libfs/src/dosfs/fat_file.c, libfs/src/dosfs/fat_file.h,
libfs/src/dosfs/msdos.h, libfs/src/dosfs/msdos_conv.c,
libfs/src/dosfs/msdos_create.c, libfs/src/dosfs/msdos_file.c,
libfs/src/dosfs/msdos_handlers_dir.c,
libfs/src/dosfs/msdos_handlers_file.c,
libfs/src/dosfs/msdos_init.c, libfs/src/dosfs/msdos_initsupp.c,
libfs/src/dosfs/msdos_misc.c, libfs/src/dosfs/msdos_mknod.c: Add
long file name support. Change off_t to rtems_off64_t.
|
|
|
|
|
|
|
|
|
|
| |
PR 1376/filesystem
* libcsupport/include/rtems/libio.h, libfs/src/dosfs/fat_file.c,
libfs/src/dosfs/msdos.h, libfs/src/dosfs/msdos_dir.c,
libfs/src/dosfs/msdos_file.c, libfs/src/imfs/deviceio.c,
libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_directory.c,
libfs/src/imfs/imfs_fifo.c, libfs/src/imfs/memfile.c,
libfs/src/nfsclient/src/nfs.c: lseek handlers should return off_t.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.am, preinstall.am, libcsupport/src/mknod.c,
libcsupport/src/open.c, libcsupport/src/pipe.c, libfs/Makefile.am,
libfs/preinstall.am, libfs/src/imfs/imfs.h,
libfs/src/imfs/imfs_creat.c, libfs/src/imfs/imfs_debug.c,
libfs/src/imfs/imfs_eval.c, libfs/src/imfs/imfs_initsupp.c,
libfs/src/imfs/imfs_mknod.c, libfs/src/imfs/imfs_stat.c,
libfs/src/imfs/memfile.c: Initial commit of POSIX pipe support.
* libfs/src/imfs/imfs_fifo.c, libfs/src/pipe/fifo.c,
libfs/src/pipe/pipe.c, libfs/src/pipe/pipe.h: New files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cpukit/libcsupport/include/chain.h: Removed. Use the SAPI
interface that is supported.
* cpukit/libcsupport/Makefile.am,
cpukit/libcsupport/preinstall.am: Remove chain.h header
references.
* cpukit/sapi/include/rtems/chain.h,
cpukit/sapi/inline/rtems/chain.inl: New. A supported chains
interface.
* cpukit/sapi/Makefile.am, cpukit/sapi/preinstall.am: Updated to
include the new chains interface.
* cpukit/libfs/src/imfs/imfs.h,
cpukit/libfs/src/imfs/imfs_creat.c,
cpukit/libfs/src/imfs/imfs_debug.c,
cpukit/libfs/src/imfs/imfs_directory.c,
cpukit/libfs/src/imfs/imfs_fsunmount.c,
cpukit/libfs/src/imfs/imfs_getchild.c,
cpukit/libfs/src/imfs/imfs_load_tar.c,
cpukit/libfs/src/imfs/imfs_rmnod.c,
cpukit/libfs/src/imfs/memfile.c,
cpukit/libfs/src/nfsclient/src/nfs.c,
cpukit/libcsupport/include/rtems/libio.h,
cpukit/libcsupport/src/malloc_deferred.c,
cpukit/libcsupport/src/mount.c,
cpukit/libcsupport/src/privateenv.c,
cpukit/libcsupport/src/unmount.c: Change to the new chains
interface.
* cpukit/libcsupport/src/malloc_boundary.c: Remove warning.
|
| |
|
| |
|
|
|
|
|
| |
* libfs/src/imfs/imfs_debug.c, libfs/src/imfs/memfile.c:
Use fprintf(stdout,...) instead of printf.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libfs/src/dosfs/fat.c, libfs/src/dosfs/fat.h,
libfs/src/dosfs/fat_fat_operations.c,
libfs/src/dosfs/fat_fat_operations.h, libfs/src/dosfs/fat_file.c,
libfs/src/dosfs/fat_file.h, libfs/src/dosfs/msdos.h,
libfs/src/dosfs/msdos_create.c, libfs/src/dosfs/msdos_dir.c,
libfs/src/dosfs/msdos_file.c, libfs/src/dosfs/msdos_initsupp.c,
libfs/src/dosfs/msdos_misc.c, libfs/src/imfs/deviceio.c,
libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_directory.c,
libfs/src/imfs/imfs_fchmod.c, libfs/src/imfs/linearfile.c,
libfs/src/imfs/memfile.c: Convert to using c99 fixed-size types.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/dosfs/dosfs.h, src/dosfs/fat.h, src/dosfs/fat_fat_operations.h,
src/dosfs/fat_file.h, src/dosfs/msdos.h, src/dosfs/msdos_create.c,
src/dosfs/msdos_dir.c, src/dosfs/msdos_eval.c,
src/dosfs/msdos_file.c, src/dosfs/msdos_free.c,
src/dosfs/msdos_fsunmount.c, src/dosfs/msdos_handlers_dir.c,
src/dosfs/msdos_handlers_file.c, src/dosfs/msdos_init.c,
src/dosfs/msdos_initsupp.c, src/dosfs/msdos_misc.c,
src/dosfs/msdos_mknod.c, src/dosfs/msdos_node_type.c,
src/imfs/deviceio.c, src/imfs/imfs.h, src/imfs/imfs_chown.c,
src/imfs/imfs_config.c, src/imfs/imfs_creat.c, src/imfs/imfs_debug.c,
src/imfs/imfs_directory.c, src/imfs/imfs_eval.c,
src/imfs/imfs_fchmod.c, src/imfs/imfs_fcntl.c,
src/imfs/imfs_fdatasync.c, src/imfs/imfs_free.c,
src/imfs/imfs_fsunmount.c, src/imfs/imfs_getchild.c,
src/imfs/imfs_gtkn.c, src/imfs/imfs_handlers_device.c,
src/imfs/imfs_handlers_directory.c, src/imfs/imfs_handlers_link.c,
src/imfs/imfs_handlers_memfile.c, src/imfs/imfs_init.c,
src/imfs/imfs_initsupp.c, src/imfs/imfs_link.c,
src/imfs/imfs_mknod.c, src/imfs/imfs_mount.c, src/imfs/imfs_ntype.c,
src/imfs/imfs_readlink.c, src/imfs/imfs_rmnod.c,
src/imfs/imfs_stat.c, src/imfs/imfs_symlink.c,
src/imfs/imfs_unixstub.c, src/imfs/imfs_unlink.c,
src/imfs/imfs_unmount.c, src/imfs/imfs_utime.c, src/imfs/ioman.c,
src/imfs/linearfile.c, src/imfs/memfile.c, src/imfs/miniimfs_init.c:
URL for license changed.
|
|
|
|
|
|
| |
* src/imfs/memfile.c: Fixed case where last close of unlinked file
did not remove the resources associated with that file. Reported
by Till Straumann <strauman@slac.stanford.edu> on the mailing list.
|
|
|
|
|
|
|
|
| |
* src/dosfs/fat.c, src/imfs/deviceio.c, src/imfs/imfs.h,
src/imfs/imfs_directory.c, src/imfs/imfs_fchmod.c,
src/imfs/memfile.c: Eliminated warnings. A lot of this focus
was on changing read and write entry points to return ssize_t
as read(2) and write(2) now do.
|
|
|
|
|
|
|
|
| |
* src/imfs/imfs_getchild.c: include <string.h>.
* src/imfs/imfs_gtkn.c: Include <string.h>.
* src/imfs/ioman.c: Include <string.h>.
* src/imfs/linearfile.c: Include <string.h>.
* src/imfs/memfile.c: Include <string.h>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/imfs/imfs_eval.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/memfile.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_readlink.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_unlink.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_link.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_chown.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/ioman.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_mount.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_directory.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_stat.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_fchmod.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_symlink.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_mknod.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/linearfile.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs_unmount.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* src/imfs/imfs.h: Apply rtems_set_errno_and_return_minus_one.
Comment out increment_and_check_linkcounts.
|
|
|
|
|
|
|
|
| |
* src/imfs/memfile.c (memfile_open): Did not set iop->size
and thus the value was incorrect. Before this field was cleared,
this resulted in the value from the last time that IOP was used
being still in place. Discovered by Andrew Bythell
<abythell@nortelnetworks.com>.
|
|
|
|
|
|
|
|
| |
* src/imfs/memfile.c: Reapply fix from bug report from
Jose Sturniolo <jsturnio@nec.com.ar> where NULL pointer
was dereferenced when freeing a triply indirect file.
The fix was applied to the 4.5 release branch and not
the development branch.
|
|
|
|
|
|
|
| |
* configure.in: Add src/imfs/config.h
* src/imfs/Makefile.am: Add INCLUDES += -I. to pickup config.h
* src/imfs/.cvsignore: Add config.h and stamp-h
* src/imfs/*.c: Add config.h support.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/imfs/imfs.h, src/imfs/imfs_creat.c, src/imfs/imfs_debug.c,
src/imfs/imfs_eval.c, src/imfs/imfs_fchmod.c,
src/imfs/imfs_handlers_memfile.c, src/imfs/imfs_init.c,
src/imfs/imfs_initsupp.c, src/imfs/imfs_stat.c, src/imfs/memfile.c,
src/imfs/miniimfs_init.c: Final developmental update to "tarfs".
When rtems_tarfs_load() is called, it checks the permissions
on each file. If there is write permission, it just creates a
standard file using "creat()" and therefore, uses the IMFS MEMORY_FILE.
If there is no write permission, it creates a LINEAR_FILE node
with the appropriate properties. If the permission is ever changed
to writeable, IMFS_fchmod converts it to a regular memory file.
|