linux/fs/ceph
Alex Elder e5975c7c8e ceph: build osd request message later for writepages
Hold off building the osd request message in ceph_writepages_start()
until just before it will be submitted to the osd client for
execution.

We'll still create the request and allocate the page pointer array
after we learn we have at least one page to write.  A local variable
will be used to keep track of the allocated array of pages.  Wait
until just before submitting the request for assigning that page
array pointer to the request message.

Create ands use a new function osd_req_op_extent_update() whose
purpose is to serve this one spot where the length value supplied
when an osd request's op was initially formatted might need to get
changed (reduced, never increased) before submitting the request.

Previously, ceph_writepages_start() assigned the message header's
data length because of this update.  That's no longer necessary,
because ceph_osdc_build_request() will recalculate the right
value to use based on the content of the ops in the request.

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-05-01 21:18:02 -07:00
..
Kconfig fs/ceph: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:39:04 -08:00
Makefile ceph: Makefile: Remove unnessary code 2011-01-12 15:15:13 -08:00
addr.c ceph: build osd request message later for writepages 2013-05-01 21:18:02 -07:00
caps.c ceph: use i_release_count to indicate dir's completeness 2013-05-01 21:17:07 -07:00
ceph_frag.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
debugfs.c libceph: delay debugfs initialization until we learn global_id 2012-08-20 10:03:15 -07:00
dir.c ceph: use i_release_count to indicate dir's completeness 2013-05-01 21:17:07 -07:00
export.c fs: encode_fh: return FILEID_INVALID if invalid fid_type 2013-02-26 02:46:10 -05:00
file.c libceph: hold off building osd request 2013-05-01 21:18:01 -07:00
inode.c ceph: use i_release_count to indicate dir's completeness 2013-05-01 21:17:07 -07:00
ioctl.c libceph: rename ceph_calc_object_layout() 2013-05-01 21:16:17 -07:00
ioctl.h ceph: fully initialize new layout 2012-05-16 14:28:27 -05:00
locks.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
mds_client.c libceph: wrap auth ops in wrapper functions 2013-05-01 21:17:14 -07:00
mds_client.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2013-02-28 17:43:09 -08:00
mdsmap.c ceph: update support for PGID64, PGPOOL3, OSDENC protocol features 2013-02-26 15:02:25 -08:00
snap.c ceph: define snap counts as u32 everywhere 2012-07-30 18:15:47 -07:00
strings.c libceph: update ceph_mds_state_name() and ceph_mds_op_name() 2013-02-18 12:20:34 -06:00
super.c ceph: set up page array mempool with correct size 2013-05-01 21:17:50 -07:00
super.h ceph: use i_release_count to indicate dir's completeness 2013-05-01 21:17:07 -07:00
xattr.c ceph: eliminate sparse warnings in fs code 2013-02-25 15:37:14 -06:00