Lines Matching refs:file_off
41 static int freader_get_folio(struct freader *r, loff_t file_off) in freader_get_folio() argument
44 if (r->folio && file_off >= r->folio_off && in freader_get_folio()
45 file_off < r->folio_off + folio_size(r->folio)) in freader_get_folio()
51 r->folio = filemap_get_folio(r->file->f_mapping, file_off >> PAGE_SHIFT); in freader_get_folio()
66 const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz) in freader_fetch() argument
76 if (unlikely(file_off + sz < file_off)) { in freader_fetch()
83 if (file_off + sz > r->data_sz) { in freader_fetch()
87 return r->data + file_off; in freader_fetch()
100 ret = __kernel_read(r->file, r->buf, sz, &file_off); in freader_fetch()
109 r->err = freader_get_folio(r, file_off); in freader_fetch()
118 if (file_off + sz > r->folio_off + folio_sz) { in freader_fetch()
119 u64 part_sz = r->folio_off + folio_sz - file_off, off; in freader_fetch()
121 memcpy(r->buf, r->addr + file_off - r->folio_off, part_sz); in freader_fetch()
139 return r->addr + (file_off - r->folio_off); in freader_fetch()