Whamcloud - gitweb
LU-4665 utils: lfs setstripe to specify OSTs
[fs/lustre-release.git] / lustre / llite / llite_lib.c
index 17e388f..bfc14a9 100644 (file)
@@ -2742,6 +2742,32 @@ void ll_dirty_page_discard_warn(struct page *page, int ioret)
                free_page((unsigned long)buf);
 }
 
+ssize_t ll_copy_user_md(const struct lov_user_md __user *md,
+                       struct lov_user_md **kbuf)
+{
+       struct lov_user_md      lum;
+       ssize_t                 lum_size;
+       ENTRY;
+
+       if (copy_from_user(&lum, md, sizeof(lum)))
+               RETURN(-EFAULT);
+
+       lum_size = ll_lov_user_md_size(&lum);
+       if (lum_size < 0)
+               RETURN(lum_size);
+
+       OBD_ALLOC(*kbuf, lum_size);
+       if (*kbuf == NULL)
+               RETURN(-ENOMEM);
+
+       if (copy_from_user(*kbuf, md, lum_size) != 0) {
+               OBD_FREE(*kbuf, lum_size);
+               RETURN(-EFAULT);
+       }
+
+       RETURN(lum_size);
+}
+
 /*
  * Compute llite root squash state after a change of root squash
  * configuration setting or add/remove of a lnet nid