Cleanup #20604 ยป 0001-ceph-kernel-client-startsync-can-be-removed.patch
fs/ceph/addr.c | ||
---|---|---|
break;
|
||
}
|
||
num_ops = 1 + do_sync;
|
||
num_ops = 1;
|
||
strip_unit_end = page->index +
|
||
((len - 1) >> PAGE_SHIFT);
|
||
... | ... | |
for (i = 0; i < locked_pages; i++) {
|
||
u64 cur_offset = page_offset(pages[i]);
|
||
if (offset + len != cur_offset) {
|
||
if (op_idx + do_sync + 1 == req->r_num_ops)
|
||
if (op_idx + 1 == req->r_num_ops)
|
||
break;
|
||
osd_req_op_extent_dup_last(req, op_idx,
|
||
cur_offset - offset);
|
||
... | ... | |
0, !!pool, false);
|
||
osd_req_op_extent_update(req, op_idx, len);
|
||
if (do_sync) {
|
||
op_idx++;
|
||
osd_req_op_init(req, op_idx, CEPH_OSD_OP_STARTSYNC, 0);
|
||
}
|
||
BUG_ON(op_idx + 1 != req->r_num_ops);
|
||
pool = NULL;
|
||
if (i < locked_pages) {
|
||
BUG_ON(num_ops <= req->r_num_ops);
|
||
num_ops -= req->r_num_ops;
|
||
num_ops += do_sync;
|
||
locked_pages -= i;
|
||
/* allocate new pages array for next request */
|
fs/ceph/file.c | ||
---|---|---|
}
|
||
req->r_ops[0] = orig_req->r_ops[0];
|
||
osd_req_op_init(req, 1, CEPH_OSD_OP_STARTSYNC, 0);
|
||
req->r_mtime = aio_req->mtime;
|
||
req->r_data_offset = req->r_ops[0].extent.offset;
|
||
... | ... | |
vino = ceph_vino(inode);
|
||
req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout,
|
||
vino, pos, &size, 0,
|
||
/*include a 'startsync' command*/
|
||
write ? 2 : 1,
|
||
write ? CEPH_OSD_OP_WRITE :
|
||
CEPH_OSD_OP_READ,
|
||
... | ... | |
truncate_inode_pages_range(inode->i_mapping, pos,
|
||
(pos+len) | (PAGE_SIZE - 1));
|
||
osd_req_op_init(req, 1, CEPH_OSD_OP_STARTSYNC, 0);
|
||
req->r_mtime = mtime;
|
||
}
|
||
include/linux/ceph/rados.h | ||
---|---|---|
\
|
||
/* fancy write */ \
|
||
f(APPEND, __CEPH_OSD_OP(WR, DATA, 6), "append") \
|
||
f(STARTSYNC, __CEPH_OSD_OP(WR, DATA, 7), "startsync") \
|
||
f(SETTRUNC, __CEPH_OSD_OP(WR, DATA, 8), "settrunc") \
|
||
f(TRIMTRUNC, __CEPH_OSD_OP(WR, DATA, 9), "trimtrunc") \
|
||
\
|
net/ceph/osd_client.c | ||
---|---|---|
dst->cls.method_len = src->cls.method_len;
|
||
dst->cls.indata_len = cpu_to_le32(src->cls.indata_len);
|
||
break;
|
||
case CEPH_OSD_OP_STARTSYNC:
|
||
break;
|
||
case CEPH_OSD_OP_WATCH:
|
||
dst->watch.cookie = cpu_to_le64(src->watch.cookie);
|
||
dst->watch.ver = cpu_to_le64(0);
|
||
... | ... | |
* if the file was recently truncated, we include information about its
|
||
* old and new size so that the object can be updated appropriately. (we
|
||
* avoid synchronously deleting truncated objects because it's slow.)
|
||
*
|
||
* if @do_sync, include a 'startsync' command so that the osd will flush
|
||
* data quickly.
|
||
*/
|
||
struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc,
|
||
struct ceph_file_layout *layout,
|