Lines Matching full:wr
23 struct orangefs_write_range *wr = NULL; in orangefs_writepage_locked() local
34 wr = folio->private; in orangefs_writepage_locked()
35 off = wr->pos; in orangefs_writepage_locked()
36 if ((off + wr->len > len) && (off <= len)) in orangefs_writepage_locked()
39 wlen = wr->len; in orangefs_writepage_locked()
41 wlen = wr->len; in orangefs_writepage_locked()
56 len, wr, NULL, NULL); in orangefs_writepage_locked()
82 struct orangefs_write_range *wrp, wr; in orangefs_writepages_work() local
105 wr.uid = ow->uid; in orangefs_writepages_work()
106 wr.gid = ow->gid; in orangefs_writepages_work()
108 0, &wr, NULL, NULL); in orangefs_writepages_work()
127 struct orangefs_write_range *wr = folio->private; in orangefs_writepages_callback() local
130 if (!wr) { in orangefs_writepages_callback()
140 ow->off = wr->pos; in orangefs_writepages_callback()
141 ow->len = wr->len; in orangefs_writepages_callback()
142 ow->uid = wr->uid; in orangefs_writepages_callback()
143 ow->gid = wr->gid; in orangefs_writepages_callback()
148 if (!uid_eq(ow->uid, wr->uid) || !gid_eq(ow->gid, wr->gid)) { in orangefs_writepages_callback()
154 if (ow->off + ow->len == wr->pos) { in orangefs_writepages_callback()
155 ow->len += wr->len; in orangefs_writepages_callback()
293 struct orangefs_write_range *wr; in orangefs_write_begin() local
315 struct orangefs_write_range *wr; in orangefs_write_begin() local
316 wr = folio_get_private(folio); in orangefs_write_begin()
317 if (wr->pos + wr->len == pos && in orangefs_write_begin()
318 uid_eq(wr->uid, current_fsuid()) && in orangefs_write_begin()
319 gid_eq(wr->gid, current_fsgid())) { in orangefs_write_begin()
320 wr->len += len; in orangefs_write_begin()
323 wr->pos = pos; in orangefs_write_begin()
324 wr->len = len; in orangefs_write_begin()
331 wr = kmalloc(sizeof *wr, GFP_KERNEL); in orangefs_write_begin()
332 if (!wr) in orangefs_write_begin()
335 wr->pos = pos; in orangefs_write_begin()
336 wr->len = len; in orangefs_write_begin()
337 wr->uid = current_fsuid(); in orangefs_write_begin()
338 wr->gid = current_fsgid(); in orangefs_write_begin()
339 folio_attach_private(folio, wr); in orangefs_write_begin()
384 struct orangefs_write_range *wr = folio_get_private(folio); in orangefs_invalidate_folio() local
390 } else if (folio_pos(folio) + offset <= wr->pos && in orangefs_invalidate_folio()
391 wr->pos + wr->len <= folio_pos(folio) + offset + length) { in orangefs_invalidate_folio()
397 } else if (wr->pos < folio_pos(folio) + offset && in orangefs_invalidate_folio()
398 wr->pos + wr->len <= folio_pos(folio) + offset + length && in orangefs_invalidate_folio()
399 folio_pos(folio) + offset < wr->pos + wr->len) { in orangefs_invalidate_folio()
401 x = wr->pos + wr->len - (folio_pos(folio) + offset); in orangefs_invalidate_folio()
402 WARN_ON(x > wr->len); in orangefs_invalidate_folio()
403 wr->len -= x; in orangefs_invalidate_folio()
404 wr->uid = current_fsuid(); in orangefs_invalidate_folio()
405 wr->gid = current_fsgid(); in orangefs_invalidate_folio()
407 } else if (folio_pos(folio) + offset <= wr->pos && in orangefs_invalidate_folio()
408 folio_pos(folio) + offset + length < wr->pos + wr->len && in orangefs_invalidate_folio()
409 wr->pos < folio_pos(folio) + offset + length) { in orangefs_invalidate_folio()
411 x = folio_pos(folio) + offset + length - wr->pos; in orangefs_invalidate_folio()
412 WARN_ON(x > wr->len); in orangefs_invalidate_folio()
413 wr->pos += x; in orangefs_invalidate_folio()
414 wr->len -= x; in orangefs_invalidate_folio()
415 wr->uid = current_fsuid(); in orangefs_invalidate_folio()
416 wr->gid = current_fsgid(); in orangefs_invalidate_folio()
418 } else if (wr->pos < folio_pos(folio) + offset && in orangefs_invalidate_folio()
419 folio_pos(folio) + offset + length < wr->pos + wr->len) { in orangefs_invalidate_folio()
431 if (!((folio_pos(folio) + offset + length <= wr->pos) ^ in orangefs_invalidate_folio()
432 (wr->pos + wr->len <= folio_pos(folio) + offset))) { in orangefs_invalidate_folio()
437 wr->pos, wr->len); in orangefs_invalidate_folio()
443 * Above there are returns where wr is freed or where we WARN. in orangefs_invalidate_folio()
444 * Thus the following runs if wr was modified above. in orangefs_invalidate_folio()
612 struct orangefs_write_range *wr; in orangefs_page_mkwrite() local
634 wr = folio_get_private(folio); in orangefs_page_mkwrite()
635 if (uid_eq(wr->uid, current_fsuid()) && in orangefs_page_mkwrite()
636 gid_eq(wr->gid, current_fsgid())) { in orangefs_page_mkwrite()
637 wr->pos = page_offset(vmf->page); in orangefs_page_mkwrite()
638 wr->len = PAGE_SIZE; in orangefs_page_mkwrite()
647 wr = kmalloc(sizeof *wr, GFP_KERNEL); in orangefs_page_mkwrite()
648 if (!wr) { in orangefs_page_mkwrite()
652 wr->pos = page_offset(vmf->page); in orangefs_page_mkwrite()
653 wr->len = PAGE_SIZE; in orangefs_page_mkwrite()
654 wr->uid = current_fsuid(); in orangefs_page_mkwrite()
655 wr->gid = current_fsgid(); in orangefs_page_mkwrite()
656 folio_attach_private(folio, wr); in orangefs_page_mkwrite()