summaryrefslogtreecommitdiffstats
path: root/libglusterfs
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs')
-rw-r--r--libglusterfs/src/gf-dirent.c19
-rw-r--r--libglusterfs/src/gf-dirent.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/libglusterfs/src/gf-dirent.c b/libglusterfs/src/gf-dirent.c
index cd31464ff..0a3436949 100644
--- a/libglusterfs/src/gf-dirent.c
+++ b/libglusterfs/src/gf-dirent.c
@@ -49,6 +49,25 @@ gf_dirent_nb_size (gf_dirent_t *entries)
return (sizeof (struct gf_dirent_nb) + strlen (entries->d_name) + 1);
}
+gf_dirent_t *
+gf_dirent_for_namelen (int len)
+{
+ gf_dirent_t *gf_dirent = NULL;
+
+ /* TODO: use mem-pool */
+ gf_dirent = CALLOC (len, sizeof(char));
+ if (!gf_dirent)
+ return NULL;
+
+ INIT_LIST_HEAD (&gf_dirent->list);
+
+ gf_dirent->d_off = 0;
+ gf_dirent->d_ino = -1;
+ gf_dirent->d_type = 0;
+
+ return gf_dirent;
+}
+
gf_dirent_t *
gf_dirent_for_name (const char *name)
diff --git a/libglusterfs/src/gf-dirent.h b/libglusterfs/src/gf-dirent.h
index 2c10f8fbc..0e13c0325 100644
--- a/libglusterfs/src/gf-dirent.h
+++ b/libglusterfs/src/gf-dirent.h
@@ -57,5 +57,6 @@ gf_dirent_t *gf_dirent_for_name (const char *name);
void gf_dirent_free (gf_dirent_t *entries);
int gf_dirent_serialize (gf_dirent_t *entries, char *buf, size_t size);
int gf_dirent_unserialize (gf_dirent_t *entries, const char *buf, size_t size);
+gf_dirent_t * gf_dirent_for_namelen (int len);
#endif /* _GF_DIRENT_H */