Messages in this thread | | | Date | Mon, 22 May 2023 09:53:28 +0800 | Subject | Re: [PATCH v20 13/32] ceph: Provide a splice-read stub | From | Xiubo Li <> |
| |
On 5/19/23 17:24, David Howells wrote: > Xiubo Li <xiubli@redhat.com> 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?
No, at least we have got the 'need' caps: CEPH_CAP_FILE_RD once here.
I saw you have updated this and will check it.
Thanks
- Xiubo
> > David >
| |