+lsme_unpack_foreign(struct lov_obd *lov, void *buf, size_t buf_size,
+ bool inited, loff_t *maxbytes)
+{
+ struct lov_stripe_md_entry *lsme;
+ struct lov_foreign_md *lfm = buf;
+ __u32 magic;
+
+ ENTRY;
+
+ magic = le32_to_cpu(lfm->lfm_magic);
+ if (magic != LOV_MAGIC_FOREIGN)
+ RETURN(ERR_PTR(-EINVAL));
+
+ OBD_ALLOC_LARGE(lsme, sizeof(*lsme));
+ if (!lsme)
+ RETURN(ERR_PTR(-ENOMEM));
+
+ lsme->lsme_magic = magic;
+ lsme->lsme_pattern = LOV_PATTERN_FOREIGN;
+ lsme->lsme_flags = 0;
+
+ if (maxbytes)
+ *maxbytes = MAX_LFS_FILESIZE;
+
+ RETURN(lsme);
+}
+
+static struct lov_stripe_md_entry *