Whamcloud - gitweb
LU-5971 llite: reorganize variable and data structures
[fs/lustre-release.git] / lustre / llite / dir.c
index e20ffd7..101918e 100644 (file)
@@ -175,6 +175,29 @@ void ll_release_page(struct inode *inode, struct page *page,
        page_cache_release(page);
 }
 
+/**
+ * return IF_* type for given lu_dirent entry.
+ * IF_* flag shld be converted to particular OS file type in
+ * platform llite module.
+ */
+static u16 ll_dirent_type_get(struct lu_dirent *ent)
+{
+       u16 type = 0;
+       struct luda_type *lt;
+       int len = 0;
+
+       if (le32_to_cpu(ent->lde_attrs) & LUDA_TYPE) {
+               const unsigned align = sizeof(struct luda_type) - 1;
+
+               len = le16_to_cpu(ent->lde_namelen);
+               len = (len + align) & ~align;
+               lt = (void *)ent->lde_name + len;
+               type = IFTODT(le16_to_cpu(lt->lt_type));
+       }
+
+       return type;
+}
+
 #ifdef HAVE_DIR_CONTEXT
 int ll_dir_read(struct inode *inode, __u64 *ppos, struct md_op_data *op_data,
                struct dir_context *ctx)