The patch titled introduce memory_read_from_buffer() has been added to the -mm tree. Its filename is introduce-memory_read_from_buffer.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: introduce memory_read_from_buffer() From: Akinobu Mita <akinobu.mita@xxxxxxxxx> This patch introduces memory_read_from_buffer(). The only difference between memory_read_from_buffer() and simple_read_from_buffer() is which address space the function copies to. simple_read_from_buffer copies to user space memory. memory_read_from_buffer copies to normal memory. Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: Doug Warzecha <Douglas_Warzecha@xxxxxxxx> Cc: Zhang Rui <rui.zhang@xxxxxxxxx> Cc: Matt Domsch <Matt_Domsch@xxxxxxxx> Cc: Abhay Salunke <Abhay_Salunke@xxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxx> Cc: Markus Rechberger <markus.rechberger@xxxxxxx> Cc: Kay Sievers <kay.sievers@xxxxxxxx> Cc: Bob Moore <robert.moore@xxxxxxxxx> Cc: Thomas Renninger <trenn@xxxxxxx> Cc: Len Brown <lenb@xxxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Cc: "Antonino A. Daplas" <adaplas@xxxxxxx> Cc: Krzysztof Helt <krzysztof.h1@xxxxxxxxx> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx> Cc: Peter Oberparleiter <peter.oberparleiter@xxxxxxxxxx> Cc: Michael Holzheu <holzheu@xxxxxxxxxx> Cc: Brian King <brking@xxxxxxxxxx> Cc: James E.J. Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> Cc: Andrew Vasquez <linux-driver@xxxxxxxxxx> Cc: Seokmann Ju <seokmann.ju@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/libfs.c | 18 ++++++++++++++++++ include/linux/fs.h | 5 ++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff -puN fs/libfs.c~introduce-memory_read_from_buffer fs/libfs.c --- a/fs/libfs.c~introduce-memory_read_from_buffer +++ a/fs/libfs.c @@ -528,6 +528,23 @@ ssize_t simple_read_from_buffer(void __u return count; } +ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos, + const void *from, size_t available) +{ + loff_t pos = *ppos; + + if (pos < 0) + return -EINVAL; + if (pos >= available) + return 0; + if (count > available - pos) + count = available - pos; + memcpy(to, from + pos, count); + *ppos = pos + count; + + return count; +} + /* * Transaction based IO. * The file expects a single write which triggers the transaction, and then @@ -800,6 +817,7 @@ EXPORT_SYMBOL(simple_statfs); EXPORT_SYMBOL(simple_sync_file); EXPORT_SYMBOL(simple_unlink); EXPORT_SYMBOL(simple_read_from_buffer); +EXPORT_SYMBOL(memory_read_from_buffer); EXPORT_SYMBOL(simple_transaction_get); EXPORT_SYMBOL(simple_transaction_read); EXPORT_SYMBOL(simple_transaction_release); diff -puN include/linux/fs.h~introduce-memory_read_from_buffer include/linux/fs.h --- a/include/linux/fs.h~introduce-memory_read_from_buffer +++ a/include/linux/fs.h @@ -2025,7 +2025,10 @@ extern int simple_fill_super(struct supe extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); extern void simple_release_fs(struct vfsmount **mount, int *count); -extern ssize_t simple_read_from_buffer(void __user *, size_t, loff_t *, const void *, size_t); +extern ssize_t simple_read_from_buffer(void __user *to, size_t count, + loff_t *ppos, const void *from, size_t available); +extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos, + const void *from, size_t available); #ifdef CONFIG_MIGRATION extern int buffer_migrate_page(struct address_space *, _ Patches currently in -mm which might be from akinobu.mita@xxxxxxxxx are lib-export-bitrev16.patch bluetooth-hci_bcspc-small-cleanups-api-users.patch bluetooth-hci_bcspc-small-cleanups-api-users-fix.patch binfmt_misc-use-simple_read_from_buffer.patch ocfs2-use-simple_read_from_buffer.patch ipc-use-simple_read_from_buffer.patch isdn-use-simple_read_from_buffer.patch s390-vmcp-use-simple_read_from_buffer.patch s390-use-simple_read_from_buffer.patch nwflash-use-simple_read_from_buffer.patch usbmon-use-simple_read_from_buffer.patch ttusb-use-simple_read_from_buffer.patch airo-use-simple_read_from_buffer.patch cris-use-simple_read_from_buffer.patch introduce-memory_read_from_buffer.patch dcdbas-use-memory_read_from_buffer.patch dell_rbu-use-memory_read_from_buffer.patch firmware-use-memory_read_from_buffer.patch acpi-use-memory_read_from_buffer.patch aty-use-memory_read_from_buffer.patch zorro-use-memory_read_from_buffer.patch s390-cio-use-memory_read_from_buffer.patch s390-use-memory_read_from_buffer.patch ipr-use-memory_read_from_buffer.patch qla2xxx-use-memory_read_from_buffer.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html