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_initsupp.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_initsupp.c')
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_initsupp.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/cpukit/libfs/src/imfs/imfs_initsupp.c b/cpukit/libfs/src/imfs/imfs_initsupp.c index 5f0df250e5..242856340e 100644 --- a/cpukit/libfs/src/imfs/imfs_initsupp.c +++ b/cpukit/libfs/src/imfs/imfs_initsupp.c @@ -78,10 +78,10 @@ IMFS_jnode_t *IMFS_initialize_node( /* * Fill in the basic information */ + node->name = name; + node->namelen = namelen; node->reference_count = 1; node->st_nlink = 1; - memcpy( node->name, name, namelen ); - node->name [namelen] = '\0'; node->control = node_control; /* @@ -192,6 +192,10 @@ IMFS_jnode_t *IMFS_node_remove_default( void IMFS_node_destroy_default( IMFS_jnode_t *node ) { + if ( ( node->flags & IMFS_NODE_FLAG_NAME_ALLOCATED ) != 0 ) { + free( node->name ); + } + free( node ); } |