@ -1371,9 +1371,9 @@ int drbd_submit_peer_request(struct drbd_device *device,
struct bio * bio ;
struct page * page = peer_req - > pages ;
sector_t sector = peer_req - > i . sector ;
unsigned ds = peer_req - > i . size ;
unsigned data_ size = peer_req - > i . size ;
unsigned n_bios = 0 ;
unsigned nr_pages = ( ds + PAGE_SIZE - 1 ) > > PAGE_SHIFT ;
unsigned nr_pages = ( data_ size + PAGE_SIZE - 1 ) > > PAGE_SHIFT ;
int err = - ENOMEM ;
if ( peer_req - > flags & EE_IS_TRIM_USE_ZEROOUT ) {
@ -1388,7 +1388,7 @@ int drbd_submit_peer_request(struct drbd_device *device,
list_add_tail ( & peer_req - > w . list , & device - > active_ee ) ;
spin_unlock_irq ( & device - > resource - > req_lock ) ;
if ( blkdev_issue_zeroout ( device - > ldev - > backing_bdev ,
sector , ds > > 9 , GFP_NOIO ) )
sector , data_ size > > 9 , GFP_NOIO ) )
peer_req - > flags | = EE_WAS_ERROR ;
drbd_endio_write_sec_final ( peer_req ) ;
return 0 ;
@ -1426,12 +1426,12 @@ next_bio:
+ + n_bios ;
if ( rw & REQ_DISCARD ) {
bio - > bi_iter . bi_size = ds ;
bio - > bi_iter . bi_size = data_ size ;
goto submit ;
}
page_chain_for_each ( page ) {
unsigned len = min_t ( unsigned , ds , PAGE_SIZE ) ;
unsigned len = min_t ( unsigned , data_ size , PAGE_SIZE ) ;
if ( ! bio_add_page ( bio , page , len , 0 ) ) {
/* A single page must always be possible!
* But in case it fails anyways ,
@ -1446,11 +1446,11 @@ next_bio:
}
goto next_bio ;
}
ds - = len ;
data_ size - = len ;
sector + = len > > 9 ;
- - nr_pages ;
}
D_ASSERT ( device , ds = = 0 ) ;
D_ASSERT ( device , data_ size = = 0 ) ;
submit :
D_ASSERT ( device , page = = NULL ) ;
@ -1591,24 +1591,24 @@ read_in_block(struct drbd_peer_device *peer_device, u64 id, sector_t sector,
const sector_t capacity = drbd_get_capacity ( device - > this_bdev ) ;
struct drbd_peer_request * peer_req ;
struct page * page ;
int dgs , ds , err ;
unsigned int data_size = pi - > size ;
int digest_size , err ;
unsigned int data_size = pi - > size , ds ;
void * dig_in = peer_device - > connection - > int_dig_in ;
void * dig_vv = peer_device - > connection - > int_dig_vv ;
unsigned long * data ;
struct p_trim * trim = ( pi - > cmd = = P_TRIM ) ? pi - > data : NULL ;
dgs = 0 ;
di ge st_size = 0 ;
if ( ! trim & & peer_device - > connection - > peer_integrity_tfm ) {
dgs = crypto_hash_digestsize ( peer_device - > connection - > peer_integrity_tfm ) ;
di ge st_size = crypto_hash_digestsize ( peer_device - > connection - > peer_integrity_tfm ) ;
/*
* FIXME : Receive the incoming digest into the receive buffer
* here , together with its struct p_data ?
*/
err = drbd_recv_all_warn ( peer_device - > connection , dig_in , dgs ) ;
err = drbd_recv_all_warn ( peer_device - > connection , dig_in , di ge st_size ) ;
if ( err )
return NULL ;
data_size - = dgs ;
data_size - = di ge st_size ;
}
if ( trim ) {
@ -1661,16 +1661,16 @@ read_in_block(struct drbd_peer_device *peer_device, u64 id, sector_t sector,
ds - = len ;
}
if ( dgs ) {
if ( di ge st_size ) {
drbd_csum_ee ( peer_device - > connection - > peer_integrity_tfm , peer_req , dig_vv ) ;
if ( memcmp ( dig_in , dig_vv , dgs ) ) {
if ( memcmp ( dig_in , dig_vv , di ge st_size ) ) {
drbd_err ( device , " Digest integrity check FAILED: %llus +%u \n " ,
( unsigned long long ) sector , data_size ) ;
drbd_free_peer_req ( device , peer_req ) ;
return NULL ;
}
}
device - > recv_cnt + = data_size > > 9 ;
device - > recv_cnt + = data_size > > 9 ;
return peer_req ;
}
@ -1708,17 +1708,17 @@ static int recv_dless_read(struct drbd_peer_device *peer_device, struct drbd_req
struct bio_vec bvec ;
struct bvec_iter iter ;
struct bio * bio ;
int dgs , err , expect ;
int di ge st_size , err , expect ;
void * dig_in = peer_device - > connection - > int_dig_in ;
void * dig_vv = peer_device - > connection - > int_dig_vv ;
dgs = 0 ;
di ge st_size = 0 ;
if ( peer_device - > connection - > peer_integrity_tfm ) {
dgs = crypto_hash_digestsize ( peer_device - > connection - > peer_integrity_tfm ) ;
err = drbd_recv_all_warn ( peer_device - > connection , dig_in , dgs ) ;
di ge st_size = crypto_hash_digestsize ( peer_device - > connection - > peer_integrity_tfm ) ;
err = drbd_recv_all_warn ( peer_device - > connection , dig_in , di ge st_size ) ;
if ( err )
return err ;
data_size - = dgs ;
data_size - = di ge st_size ;
}
/* optimistically update recv_cnt. if receiving fails below,
@ -1738,9 +1738,9 @@ static int recv_dless_read(struct drbd_peer_device *peer_device, struct drbd_req
data_size - = expect ;
}
if ( dgs ) {
if ( di ge st_size ) {
drbd_csum_bio ( peer_device - > connection - > peer_integrity_tfm , bio , dig_vv ) ;
if ( memcmp ( dig_in , dig_vv , dgs ) ) {
if ( memcmp ( dig_in , dig_vv , di ge st_size ) ) {
drbd_err ( peer_device , " Digest integrity check FAILED. Broken NICs? \n " ) ;
return - EINVAL ;
}