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

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
...@@ -654,6 +654,26 @@ static void alloc_page_vec(struct ceph_fs_client *fsc, ...@@ -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 * initiate async writeback
*/ */
...@@ -835,16 +855,9 @@ static int ceph_writepages_start(struct address_space *mapping, ...@@ -835,16 +855,9 @@ static int ceph_writepages_start(struct address_space *mapping,
/* prepare async write request */ /* prepare async write request */
offset = (u64) page_offset(page); offset = (u64) page_offset(page);
len = wsize; len = wsize;
vino = ceph_vino(inode); req = ceph_writepages_osd_request(inode,
/* BUG_ON(vino.snap != CEPH_NOSNAP); */ offset, &len, snapc,
req = ceph_osdc_new_request(&fsc->client->osdc, num_ops, ops);
&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);
if (IS_ERR(req)) { if (IS_ERR(req)) {
rc = PTR_ERR(req); rc = PTR_ERR(req);
...@@ -852,6 +865,7 @@ static int ceph_writepages_start(struct address_space *mapping, ...@@ -852,6 +865,7 @@ static int ceph_writepages_start(struct address_space *mapping,
break; break;
} }
vino = ceph_vino(inode);
ceph_osdc_build_request(req, offset, ceph_osdc_build_request(req, offset,
num_ops, ops, snapc, vino.snap, num_ops, ops, snapc, vino.snap,
&inode->i_mtime); &inode->i_mtime);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment