btrfs: fix race between quota disable and quota assign ioctls
[platform/kernel/linux-rpi.git] / lib / string_helpers.c
index 3806a52..2ddc10b 100644 (file)
@@ -696,3 +696,23 @@ void kfree_strarray(char **array, size_t n)
        kfree(array);
 }
 EXPORT_SYMBOL_GPL(kfree_strarray);
+
+/**
+ * memcpy_and_pad - Copy one buffer to another with padding
+ * @dest: Where to copy to
+ * @dest_len: The destination buffer size
+ * @src: Where to copy from
+ * @count: The number of bytes to copy
+ * @pad: Character to use for padding if space is left in destination.
+ */
+void memcpy_and_pad(void *dest, size_t dest_len, const void *src, size_t count,
+                   int pad)
+{
+       if (dest_len > count) {
+               memcpy(dest, src, count);
+               memset(dest + count, pad,  dest_len - count);
+       } else {
+               memcpy(dest, src, dest_len);
+       }
+}
+EXPORT_SYMBOL(memcpy_and_pad);