diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-02-15 10:38:15 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-02-15 11:26:39 +0100 |
commit | a43a34666e2124c24e86794206aa78d2ad5e910d (patch) | |
tree | 9cee489e9763ab32904bad5eef921c3411d7ca3f /cpukit/libfs/src/imfs/imfs_creat.c | |
parent | IMFS: Add CONFIGURE_IMFS_DISABLE_READDIR (diff) | |
download | rtems-a43a34666e2124c24e86794206aa78d2ad5e910d.tar.bz2 |
IMFS: Implement variable length node names
This reduces the average node size and adds more flexibility.
Diffstat (limited to 'cpukit/libfs/src/imfs/imfs_creat.c')
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_creat.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/cpukit/libfs/src/imfs/imfs_creat.c b/cpukit/libfs/src/imfs/imfs_creat.c index 9675ca35a3..2e24972a28 100644 --- a/cpukit/libfs/src/imfs/imfs_creat.c +++ b/cpukit/libfs/src/imfs/imfs_creat.c @@ -35,7 +35,7 @@ IMFS_jnode_t *IMFS_create_node( IMFS_jnode_t *allocated_node; IMFS_jnode_t *node; - allocated_node = calloc( 1, node_size ); + allocated_node = calloc( 1, node_size + namelen ); if ( allocated_node == NULL ) { errno = ENOMEM; @@ -45,7 +45,7 @@ IMFS_jnode_t *IMFS_create_node( node = IMFS_initialize_node( allocated_node, node_control, - name, + (char *) allocated_node + node_size, namelen, mode, arg @@ -53,6 +53,8 @@ IMFS_jnode_t *IMFS_create_node( if ( node != NULL ) { IMFS_jnode_t *parent = parentloc->node_access; + memcpy( node->name, name, namelen ); + /* * This node MUST have a parent, so put it in that directory list. */ |