rxrpc.c (025db80c9e421efef11f2b83b7f78a11476f06db) rxrpc.c (2c099014a0a456012c1778e80adce839bf956b77)
1/* Maintain an RxRPC server socket to do AFS communications through
2 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version

--- 289 unchanged lines hidden (view full) ---

298 pgoff_t first = call->first, last = call->last;
299 int ret;
300
301 offset = call->first_offset;
302 call->first_offset = 0;
303
304 do {
305 afs_load_bvec(call, msg, bv, first, last, offset);
1/* Maintain an RxRPC server socket to do AFS communications through
2 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version

--- 289 unchanged lines hidden (view full) ---

298 pgoff_t first = call->first, last = call->last;
299 int ret;
300
301 offset = call->first_offset;
302 call->first_offset = 0;
303
304 do {
305 afs_load_bvec(call, msg, bv, first, last, offset);
306 trace_afs_send_pages(call, msg, first, last, offset);
307
306 offset = 0;
307 bytes = msg->msg_iter.count;
308 nr = msg->msg_iter.nr_segs;
309
310 ret = rxrpc_kernel_send_data(call->net->socket, call->rxcall, msg,
311 bytes, afs_notify_end_request_tx);
312 for (loop = 0; loop < nr; loop++)
313 put_page(bv[loop].bv_page);
314 if (ret < 0)
315 break;
316
317 first += nr;
318 } while (first <= last);
319
308 offset = 0;
309 bytes = msg->msg_iter.count;
310 nr = msg->msg_iter.nr_segs;
311
312 ret = rxrpc_kernel_send_data(call->net->socket, call->rxcall, msg,
313 bytes, afs_notify_end_request_tx);
314 for (loop = 0; loop < nr; loop++)
315 put_page(bv[loop].bv_page);
316 if (ret < 0)
317 break;
318
319 first += nr;
320 } while (first <= last);
321
322 trace_afs_sent_pages(call, call->first, last, first, ret);
320 return ret;
321}
322
323/*
324 * initiate a call
325 */
326long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call,
327 gfp_t gfp, bool async)

--- 582 unchanged lines hidden ---
323 return ret;
324}
325
326/*
327 * initiate a call
328 */
329long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call,
330 gfp_t gfp, bool async)

--- 582 unchanged lines hidden ---