mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 17:14:14 +08:00
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: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
This commit is contained in:
parent
acead002b2
commit
94fe8420bf
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user