Commit 94fe8420 authored by Alex Elder's avatar Alex Elder Committed by Sage Weil
Browse files

ceph: define ceph_writepages_osd_request()



Mostly for readability, define ceph_writepages_osd_request() and
use it to allocate the osd request for ceph_writepages_start().

Signed-off-by: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent acead002
Loading
Loading
Loading
Loading
+24 −10
Original line number Diff line number Diff line
@@ -654,6 +654,26 @@ static void alloc_page_vec(struct ceph_fs_client *fsc,
	}
}

static struct ceph_osd_request *
ceph_writepages_osd_request(struct inode *inode, u64 offset, u64 *len,
				struct ceph_snap_context *snapc,
				int num_ops, struct ceph_osd_req_op *ops)
{
	struct ceph_fs_client *fsc;
	struct ceph_inode_info *ci;
	struct ceph_vino vino;

	fsc = ceph_inode_to_client(inode);
	ci = ceph_inode(inode);
	vino = ceph_vino(inode);
	/* BUG_ON(vino.snap != CEPH_NOSNAP); */

	return ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout,
			vino, offset, len, num_ops, ops, CEPH_OSD_OP_WRITE,
			CEPH_OSD_FLAG_WRITE|CEPH_OSD_FLAG_ONDISK,
			snapc, ci->i_truncate_seq, ci->i_truncate_size, true);
}

/*
 * initiate async writeback
 */
@@ -835,16 +855,9 @@ get_more_pages:
				/* prepare async write request */
				offset = (u64) page_offset(page);
				len = wsize;
				vino = ceph_vino(inode);
				/* BUG_ON(vino.snap != CEPH_NOSNAP); */
				req = ceph_osdc_new_request(&fsc->client->osdc,
					    &ci->i_layout, vino, offset, &len,
					    num_ops, ops,
					    CEPH_OSD_OP_WRITE,
					    CEPH_OSD_FLAG_WRITE |
						    CEPH_OSD_FLAG_ONDISK,
					    snapc, ci->i_truncate_seq,
					    ci->i_truncate_size, true);
				req = ceph_writepages_osd_request(inode,
							offset, &len, snapc,
							num_ops, ops);

				if (IS_ERR(req)) {
					rc = PTR_ERR(req);
@@ -852,6 +865,7 @@ get_more_pages:
					break;
				}

				vino = ceph_vino(inode);
				ceph_osdc_build_request(req, offset,
					num_ops, ops, snapc, vino.snap,
					&inode->i_mtime);