Messages in this thread Patch in this message | | | From | Jan Blunck <> | Subject | [PATCH 04/15] s390: tape_char should update ppos instead of using file->f_pos | Date | Fri, 20 Nov 2009 17:40:34 +0100 |
| |
tapechar_read()/tapechar_write() modify file->f_pos directly instead of the ppos given to them. The VFS later updates the file->f_pos and overwrites it with the unchanged value of ppos.
Signed-off-by: Jan Blunck <jblunck@suse.de> --- drivers/s390/char/tape_char.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index 31566c5..3514f6e 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c @@ -170,7 +170,7 @@ tapechar_read(struct file *filp, char __user *data, size_t count, loff_t *ppos) if (rc == 0) { rc = block_size - request->rescnt; DBF_EVENT(6, "TCHAR:rbytes: %x\n", rc); - filp->f_pos += rc; + *ppos += rc; /* Copy data from idal buffer to user space. */ if (idal_buffer_to_user(device->char_data.idal_buf, data, rc) != 0) @@ -238,7 +238,7 @@ tapechar_write(struct file *filp, const char __user *data, size_t count, loff_t break; DBF_EVENT(6, "TCHAR:wbytes: %lx\n", block_size - request->rescnt); - filp->f_pos += block_size - request->rescnt; + *ppos += block_size - request->rescnt; written += block_size - request->rescnt; if (request->rescnt != 0) break; -- 1.6.4.2
| |