Lines Matching refs:wreq

29 static void netfs_cleanup_buffered_write(struct netfs_io_request *wreq);
161 struct netfs_io_request *wreq = NULL;
183 wreq = netfs_begin_writethrough(iocb, iter->count);
184 if (IS_ERR(wreq)) {
186 ret = PTR_ERR(wreq);
187 wreq = NULL;
191 wreq->iocb = iocb;
192 wreq->cleanup = netfs_cleanup_buffered_write;
368 if (likely(!wreq)) {
379 if (wreq->iter.count == 0)
384 netfs_advance_writethrough(wreq, copied,
396 if (unlikely(wreq)) {
397 ret2 = netfs_end_writethrough(wreq, iocb);
637 static void netfs_pages_written_back(struct netfs_io_request *wreq)
639 struct address_space *mapping = wreq->mapping;
646 XA_STATE(xas, &mapping->i_pages, wreq->start / PAGE_SIZE);
648 _enter("%llx-%llx", wreq->start, wreq->start + wreq->len);
652 last = (wreq->start + wreq->len - 1) / PAGE_SIZE;
656 wreq->len, wreq->start, folio->index, last);
719 static void netfs_cleanup_buffered_write(struct netfs_io_request *wreq)
721 struct address_space *mapping = wreq->mapping;
725 switch (wreq->error) {
727 netfs_pages_written_back(wreq);
731 pr_notice("R=%08x Unexpected error %d\n", wreq->debug_id, wreq->error);
742 netfs_redirty_pages(mapping, wreq->start, wreq->len);
752 netfs_kill_pages(mapping, wreq->start, wreq->len);
756 if (wreq->error)
757 mapping_set_error(mapping, wreq->error);
758 if (wreq->netfs_ops->done)
759 wreq->netfs_ops->done(wreq);
900 struct netfs_io_request *wreq;
911 wreq = netfs_alloc_request(mapping, NULL, start, folio_size(folio),
913 if (IS_ERR(wreq)) {
915 return PTR_ERR(wreq);
932 len = wreq->len;
953 max_len, caching, &len, &wreq->upper_len);
964 wreq->start = start;
965 wreq->len = len;
973 wreq->cleanup = netfs_cleanup_buffered_write;
975 iov_iter_xarray(&wreq->iter, ITER_SOURCE, &mapping->i_pages, start,
976 wreq->upper_len);
977 __set_bit(NETFS_RREQ_UPLOAD_TO_SERVER, &wreq->flags);
978 ret = netfs_begin_write(wreq, true, netfs_write_trace_writeback);
986 netfs_pages_written_back(wreq);
990 netfs_put_request(wreq, false, netfs_rreq_trace_put_return);
1189 static void netfs_cleanup_launder_folio(struct netfs_io_request *wreq)
1191 if (wreq->error) {
1192 pr_notice("R=%08x Laundering error %d\n", wreq->debug_id, wreq->error);
1193 mapping_set_error(wreq->mapping, wreq->error);
1206 struct netfs_io_request *wreq;
1225 wreq = netfs_alloc_request(mapping, NULL, start, len, NETFS_LAUNDER_WRITE);
1226 if (IS_ERR(wreq)) {
1227 ret = PTR_ERR(wreq);
1241 wreq->cleanup = netfs_cleanup_launder_folio;
1244 iov_iter_bvec(&wreq->iter, ITER_SOURCE, &bvec, 1, len);
1245 __set_bit(NETFS_RREQ_UPLOAD_TO_SERVER, &wreq->flags);
1246 ret = netfs_begin_write(wreq, true, netfs_write_trace_launder);
1252 netfs_put_request(wreq, false, netfs_rreq_trace_put_return);