@ -1115,8 +1115,6 @@ static void prepare_message_data(struct ceph_msg *msg,
ceph_msg_data_cursor_init ( & msg - > p ) ;
if ( ceph_msg_has_pagelist ( msg ) )
ceph_msg_data_cursor_init ( & msg - > l ) ;
if ( ceph_msg_has_trail ( msg ) )
ceph_msg_data_cursor_init ( & msg - > t ) ;
msg_pos - > did_page_crc = false ;
}
@ -1398,7 +1396,7 @@ out:
}
static void out_msg_pos_next ( struct ceph_connection * con , struct page * page ,
size_t len , size_t sent , bool in_trail )
size_t len , size_t sent )
{
struct ceph_msg * msg = con - > out_msg ;
struct ceph_msg_pos * msg_pos = & con - > out_msg_pos ;
@ -1409,9 +1407,7 @@ static void out_msg_pos_next(struct ceph_connection *con, struct page *page,
msg_pos - > data_pos + = sent ;
msg_pos - > page_pos + = sent ;
if ( in_trail )
need_crc = ceph_msg_data_advance ( & msg - > t , sent ) ;
else if ( ceph_msg_has_pages ( msg ) )
if ( ceph_msg_has_pages ( msg ) )
need_crc = ceph_msg_data_advance ( & msg - > p , sent ) ;
else if ( ceph_msg_has_pagelist ( msg ) )
need_crc = ceph_msg_data_advance ( & msg - > l , sent ) ;
@ -1481,14 +1477,6 @@ static int write_partial_message_data(struct ceph_connection *con)
bool do_datacrc = ! con - > msgr - > nocrc ;
int ret ;
int total_max_write ;
bool in_trail = false ;
size_t trail_len = 0 ;
size_t trail_off = data_len ;
if ( ceph_msg_has_trail ( msg ) ) {
trail_len = msg - > t . pagelist - > length ;
trail_off - = trail_len ;
}
dout ( " %s %p msg %p page %d offset %d \n " , __func__ ,
con , msg , msg_pos - > page , msg_pos - > page_pos ) ;
@ -1508,16 +1496,9 @@ static int write_partial_message_data(struct ceph_connection *con)
bool use_cursor = false ;
bool last_piece = true ; /* preserve existing behavior */
in_trail = in_trail | | msg_pos - > data_pos > = trail_off ;
if ( ! in_trail )
total_max_write = trail_off - msg_pos - > data_pos ;
total_max_write = data_len - msg_pos - > data_pos ;
if ( in_trail ) {
BUG_ON ( ! ceph_msg_has_trail ( msg ) ) ;
use_cursor = true ;
page = ceph_msg_data_next ( & msg - > t , & page_offset ,
& length , & last_piece ) ;
} else if ( ceph_msg_has_pages ( msg ) ) {
if ( ceph_msg_has_pages ( msg ) ) {
use_cursor = true ;
page = ceph_msg_data_next ( & msg - > p , & page_offset ,
& length , & last_piece ) ;
@ -1552,7 +1533,7 @@ static int write_partial_message_data(struct ceph_connection *con)
if ( ret < = 0 )
goto out ;
out_msg_pos_next ( con , page , length , ( size_t ) ret , in_trail ) ;
out_msg_pos_next ( con , page , length , ( size_t ) ret ) ;
}
dout ( " %s %p msg %p done \n " , __func__ , con , msg ) ;
@ -3145,17 +3126,6 @@ void ceph_msg_data_set_bio(struct ceph_msg *msg, struct bio *bio)
}
EXPORT_SYMBOL ( ceph_msg_data_set_bio ) ;
void ceph_msg_data_set_trail ( struct ceph_msg * msg , struct ceph_pagelist * trail )
{
BUG_ON ( ! trail ) ;
BUG_ON ( ! trail - > length ) ;
BUG_ON ( msg - > b . type ! = CEPH_MSG_DATA_NONE ) ;
msg - > t . type = CEPH_MSG_DATA_PAGELIST ;
msg - > t . pagelist = trail ;
}
EXPORT_SYMBOL ( ceph_msg_data_set_trail ) ;
/*
* construct a new message with given type , size
* the new msg has a ref count of 1.
@ -3179,7 +3149,6 @@ struct ceph_msg *ceph_msg_new(int type, int front_len, gfp_t flags,
ceph_msg_data_init ( & m - > p ) ;
ceph_msg_data_init ( & m - > l ) ;
ceph_msg_data_init ( & m - > b ) ;
ceph_msg_data_init ( & m - > t ) ;
/* front */
m - > front_max = front_len ;
@ -3345,9 +3314,6 @@ void ceph_msg_last_put(struct kref *kref)
m - > l . pagelist = NULL ;
}
if ( ceph_msg_has_trail ( m ) )
m - > t . pagelist = NULL ;
if ( m - > pool )
ceph_msgpool_put ( m - > pool , m ) ;
else