+struct mgs_direntry {
+ cfs_list_t list;
+ char *name;
+ int len;
+};
+
+static inline void mgs_direntry_free(struct mgs_direntry *de)
+{
+ if (de) {
+ LASSERT(de->len);
+ OBD_FREE(de->name, de->len);
+ OBD_FREE_PTR(de);
+ }
+}
+
+static inline struct mgs_direntry *mgs_direntry_alloc(int len)
+{
+ struct mgs_direntry *de;
+
+ OBD_ALLOC_PTR(de);
+ if (de == NULL)
+ return NULL;
+
+ OBD_ALLOC(de->name, len);
+ if (de->name == NULL) {
+ OBD_FREE_PTR(de);
+ return NULL;
+ }
+
+ de->len = len;
+
+ return de;
+}
+
+/* mgs_llog.c */
+int class_dentry_readdir(const struct lu_env *env, struct mgs_device *mgs,
+ cfs_list_t *list);