}
-#define FOP_READ(F, B, C) (F)->f_op->read(F, B, (size_t)(C), &(F)->f_pos)
-#define FOP_WRITE(F, B, C) (F)->f_op->write(F, B, (size_t)(C), &(F)->f_pos)
-
/* osi_rdwr
* seek, then read or write to an open inode. addrp points to data in
* kernel space.
KERNEL_SPACE_DECL;
int code = 0;
struct iovec *iov;
- afs_size_t count;
+ size_t count;
unsigned long savelim;
+ loff_t pos;
savelim = current->TASK_STRUCT_RLIM[RLIMIT_FSIZE].rlim_cur;
current->TASK_STRUCT_RLIM[RLIMIT_FSIZE].rlim_cur = RLIM_INFINITY;
continue;
}
+ pos = filp->f_pos;
if (rw == UIO_READ)
- code = FOP_READ(filp, iov->iov_base, count);
+ code = filp->f_op->read(filp, iov->iov_base, count, &pos);
else
- code = FOP_WRITE(filp, iov->iov_base, count);
+ code = filp->f_op->write(filp, iov->iov_base, count, &pos);
+ filp->f_pos = pos;
if (code < 0) {
code = -code;