ceph: switch to ->read_iter()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
3aa2d199f8
commit
3644424dc6
1 changed files with 7 additions and 11 deletions
|
@ -795,8 +795,7 @@ out:
|
||||||
*
|
*
|
||||||
* Hmm, the sync read case isn't actually async... should it be?
|
* Hmm, the sync read case isn't actually async... should it be?
|
||||||
*/
|
*/
|
||||||
static ssize_t ceph_aio_read(struct kiocb *iocb, const struct iovec *iov,
|
static ssize_t ceph_read_iter(struct kiocb *iocb, struct iov_iter *to)
|
||||||
unsigned long nr_segs, loff_t pos)
|
|
||||||
{
|
{
|
||||||
struct file *filp = iocb->ki_filp;
|
struct file *filp = iocb->ki_filp;
|
||||||
struct ceph_file_info *fi = filp->private_data;
|
struct ceph_file_info *fi = filp->private_data;
|
||||||
|
@ -806,9 +805,6 @@ static ssize_t ceph_aio_read(struct kiocb *iocb, const struct iovec *iov,
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
int want, got = 0;
|
int want, got = 0;
|
||||||
int checkeof = 0, read = 0;
|
int checkeof = 0, read = 0;
|
||||||
struct iov_iter i;
|
|
||||||
|
|
||||||
iov_iter_init(&i, READ, iov, nr_segs, len);
|
|
||||||
|
|
||||||
again:
|
again:
|
||||||
dout("aio_read %p %llx.%llx %llu~%u trying to get caps on %p\n",
|
dout("aio_read %p %llx.%llx %llu~%u trying to get caps on %p\n",
|
||||||
|
@ -831,13 +827,13 @@ again:
|
||||||
ceph_cap_string(got));
|
ceph_cap_string(got));
|
||||||
|
|
||||||
/* hmm, this isn't really async... */
|
/* hmm, this isn't really async... */
|
||||||
ret = ceph_sync_read(iocb, &i, &checkeof);
|
ret = ceph_sync_read(iocb, to, &checkeof);
|
||||||
} else {
|
} else {
|
||||||
dout("aio_read %p %llx.%llx %llu~%u got cap refs on %s\n",
|
dout("aio_read %p %llx.%llx %llu~%u got cap refs on %s\n",
|
||||||
inode, ceph_vinop(inode), pos, (unsigned)len,
|
inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len,
|
||||||
ceph_cap_string(got));
|
ceph_cap_string(got));
|
||||||
|
|
||||||
ret = generic_file_read_iter(iocb, &i);
|
ret = generic_file_read_iter(iocb, to);
|
||||||
}
|
}
|
||||||
dout("aio_read %p %llx.%llx dropping cap refs on %s = %d\n",
|
dout("aio_read %p %llx.%llx dropping cap refs on %s = %d\n",
|
||||||
inode, ceph_vinop(inode), ceph_cap_string(got), (int)ret);
|
inode, ceph_vinop(inode), ceph_cap_string(got), (int)ret);
|
||||||
|
@ -854,7 +850,7 @@ again:
|
||||||
", reading more\n", iocb->ki_pos,
|
", reading more\n", iocb->ki_pos,
|
||||||
inode->i_size);
|
inode->i_size);
|
||||||
|
|
||||||
iov_iter_advance(&i, ret);
|
iov_iter_advance(to, ret);
|
||||||
read += ret;
|
read += ret;
|
||||||
len -= ret;
|
len -= ret;
|
||||||
checkeof = 0;
|
checkeof = 0;
|
||||||
|
@ -1257,9 +1253,9 @@ const struct file_operations ceph_file_fops = {
|
||||||
.open = ceph_open,
|
.open = ceph_open,
|
||||||
.release = ceph_release,
|
.release = ceph_release,
|
||||||
.llseek = ceph_llseek,
|
.llseek = ceph_llseek,
|
||||||
.read = do_sync_read,
|
.read = new_sync_read,
|
||||||
.write = do_sync_write,
|
.write = do_sync_write,
|
||||||
.aio_read = ceph_aio_read,
|
.read_iter = ceph_read_iter,
|
||||||
.aio_write = ceph_aio_write,
|
.aio_write = ceph_aio_write,
|
||||||
.mmap = ceph_mmap,
|
.mmap = ceph_mmap,
|
||||||
.fsync = ceph_fsync,
|
.fsync = ceph_fsync,
|
||||||
|
|
Loading…
Add table
Reference in a new issue