diff options
author | Bart Van Assche <bvanassche@acm.org> | 2021-07-13 20:49:26 +0300 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2021-07-13 21:56:24 +0300 |
commit | 420405ecde061fde76d67bd3a67577a563ea758e (patch) | |
tree | 4b90dc0236356bd18fbeb2dcced201122081e33d /init | |
parent | 7fef2edf7cc753b51f7ccc74993971b0a9c81eca (diff) | |
download | linux-420405ecde061fde76d67bd3a67577a563ea758e.tar.xz |
configfs: fix the read and write iterators
Commit 7fe1e79b59ba ("configfs: implement the .read_iter and .write_iter
methods") changed the simple_read_from_buffer() calls into copy_to_iter()
calls and the simple_write_to_buffer() calls into copy_from_iter() calls.
The simple*buffer() methods update the file offset (*ppos) but the read
and write iterators not yet. Make the read and write iterators update the
file offset (iocb->ki_pos).
This patch has been tested as follows:
# modprobe target_core_user
# dd if=/sys/kernel/config/target/dbroot bs=1
/var/target
12+0 records in
12+0 records out
12 bytes copied, 9.5539e-05 s, 126 kB/s
# cd /sys/kernel/config/acpi/table
# mkdir test
# cd test
# dmesg -c >/dev/null; printf 'SSDT\x8\0\0\0abcdefghijklmnopqrstuvwxyz' | dd of=aml bs=1; dmesg -c
34+0 records in
34+0 records out
34 bytes copied, 0.010627 s, 3.2 kB/s
[ 261.056551] ACPI configfs: invalid table length
Reported-by: Yanko Kaneti <yaneti@declera.com>
Cc: Yanko Kaneti <yaneti@declera.com>
Fixes: 7fe1e79b59ba ("configfs: implement the .read_iter and .write_iter methods")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions