|
@@ -135,8 +135,8 @@ int rds_page_remainder_alloc(struct scatterlist *scat, unsigned long bytes,
|
|
|
if (rem->r_offset != 0)
|
|
|
rds_stats_inc(s_page_remainder_hit);
|
|
|
|
|
|
- rem->r_offset += bytes;
|
|
|
- if (rem->r_offset == PAGE_SIZE) {
|
|
|
+ rem->r_offset += ALIGN(bytes, 8);
|
|
|
+ if (rem->r_offset >= PAGE_SIZE) {
|
|
|
__free_page(rem->r_page);
|
|
|
rem->r_page = NULL;
|
|
|
}
|