Lines Matching refs:data
344 /* data available on socket, or listen socket received a connect */
367 /* only queue to workqueue if there is data we want to write,
369 * more data. clear SOCK_NOSPACE so that ceph_sock_write_space()
720 * For a bio data item, a piece is whatever remains of the next
727 struct ceph_msg_data *data = cursor->data;
730 cursor->resid = min_t(size_t, length, data->bio_length);
731 *it = data->bio_pos;
762 return false; /* no more data */
783 struct ceph_msg_data *data = cursor->data;
784 struct bio_vec *bvecs = data->bvec_pos.bvecs;
786 cursor->resid = min_t(size_t, length, data->bvec_pos.iter.bi_size);
787 cursor->bvec_iter = data->bvec_pos.iter;
797 struct bio_vec bv = bvec_iter_bvec(cursor->data->bvec_pos.bvecs,
808 struct bio_vec *bvecs = cursor->data->bvec_pos.bvecs;
817 return false; /* no more data */
834 struct ceph_msg_data *data = cursor->data;
837 BUG_ON(data->type != CEPH_MSG_DATA_PAGES);
839 BUG_ON(!data->pages);
840 BUG_ON(!data->length);
842 cursor->resid = min(length, data->length);
843 page_count = calc_pages_for(data->alignment, (u64)data->length);
844 cursor->page_offset = data->alignment & ~PAGE_MASK;
855 struct ceph_msg_data *data = cursor->data;
857 BUG_ON(data->type != CEPH_MSG_DATA_PAGES);
864 return data->pages[cursor->page_index];
870 BUG_ON(cursor->data->type != CEPH_MSG_DATA_PAGES);
882 return false; /* no more data */
899 struct ceph_msg_data *data = cursor->data;
903 BUG_ON(data->type != CEPH_MSG_DATA_PAGELIST);
905 pagelist = data->pagelist;
923 struct ceph_msg_data *data = cursor->data;
926 BUG_ON(data->type != CEPH_MSG_DATA_PAGELIST);
928 pagelist = data->pagelist;
943 struct ceph_msg_data *data = cursor->data;
946 BUG_ON(data->type != CEPH_MSG_DATA_PAGELIST);
948 pagelist = data->pagelist;
963 return false; /* no more data */
975 struct ceph_msg_data *data = cursor->data;
977 cursor->iov_iter = data->iter;
1029 * Message data is handled (sent or received) in pieces, where each
1031 * consume an entire piece at once. A data item's cursor keeps
1034 * piece is the last one in the data item.
1040 switch (cursor->data->type) {
1074 cursor->data = msg->data;
1082 * data item, and supply the page offset and length of that piece.
1083 * Indicate whether this is the last piece in this data item.
1090 switch (cursor->data->type) {
1124 * of the data item.
1131 switch (cursor->data->type) {
1157 cursor->data++;
1808 * Revoke a message that we may be reading data into
1870 return &msg->data[msg->num_data_items++];
1873 static void ceph_msg_data_destroy(struct ceph_msg_data *data)
1875 if (data->type == CEPH_MSG_DATA_PAGES && data->own_pages) {
1876 int num_pages = calc_pages_for(data->alignment, data->length);
1877 ceph_release_page_vector(data->pages, num_pages);
1878 } else if (data->type == CEPH_MSG_DATA_PAGELIST) {
1879 ceph_pagelist_release(data->pagelist);
1886 struct ceph_msg_data *data;
1891 data = ceph_msg_data_add(msg);
1892 data->type = CEPH_MSG_DATA_PAGES;
1893 data->pages = pages;
1894 data->length = length;
1895 data->alignment = alignment & ~PAGE_MASK;
1896 data->own_pages = own_pages;
1905 struct ceph_msg_data *data;
1910 data = ceph_msg_data_add(msg);
1911 data->type = CEPH_MSG_DATA_PAGELIST;
1913 data->pagelist = pagelist;
1923 struct ceph_msg_data *data;
1925 data = ceph_msg_data_add(msg);
1926 data->type = CEPH_MSG_DATA_BIO;
1927 data->bio_pos = *bio_pos;
1928 data->bio_length = length;
1938 struct ceph_msg_data *data;
1940 data = ceph_msg_data_add(msg);
1941 data->type = CEPH_MSG_DATA_BVECS;
1942 data->bvec_pos = *bvec_pos;
1951 struct ceph_msg_data *data;
1953 data = ceph_msg_data_add(msg);
1954 data->type = CEPH_MSG_DATA_ITER;
1955 data->iter = *iter;
1957 msg->data_length += iov_iter_count(&data->iter);
1994 m->data = kmalloc_array(max_data_items, sizeof(*m->data),
1996 if (!m->data)
2153 kfree(m->data);
2167 /* drop middle, data, if any */
2174 ceph_msg_data_destroy(&m->data[i]);