Re: [PATCH v20 13/32] ceph: Provide a splice-read stub

From: David Howells
Date: Fri May 19 2023 - 05:25:39 EST


Xiubo Li <xiubli@xxxxxxxxxx> wrote:

> > + ret = ceph_get_caps(in, CEPH_CAP_FILE_RD, want, -1, &got);
> > + if (ret < 0) {
> > + ceph_end_io_read(inode);
> > + return ret;
> > + }
> > +
> > + if ((got & (CEPH_CAP_FILE_CACHE | CEPH_CAP_FILE_LAZYIO)) == 0) {
> > + dout("splice_read/sync %p %llx.%llx %llu~%zu got cap refs on %s\n",
> > + inode, ceph_vinop(inode), *ppos, len,
> > + ceph_cap_string(got));
> > +
> > + ceph_end_io_read(inode);
> > + return direct_splice_read(in, ppos, pipe, len, flags);
>
> Shouldn't we release cap ref before returning here ?

Ummm... Even if we got no caps?

David