diff options
Diffstat (limited to 'drivers/s390/block/dasd_fba.c')
-rw-r--r-- | drivers/s390/block/dasd_fba.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/s390/block/dasd_fba.c b/drivers/s390/block/dasd_fba.c index 119b8d2d5f17..1d95822e0b8e 100644 --- a/drivers/s390/block/dasd_fba.c +++ b/drivers/s390/block/dasd_fba.c | |||
@@ -257,14 +257,13 @@ dasd_fba_build_cp(struct dasd_device * device, struct request *req) | |||
257 | count = 0; | 257 | count = 0; |
258 | cidaw = 0; | 258 | cidaw = 0; |
259 | rq_for_each_segment(bv, req, iter) { | 259 | rq_for_each_segment(bv, req, iter) { |
260 | if (bv->bv_len & (blksize - 1)) | 260 | if (bv->bv_len & (blksize - 1)) |
261 | /* Fba can only do full blocks. */ | 261 | /* Fba can only do full blocks. */ |
262 | return ERR_PTR(-EINVAL); | 262 | return ERR_PTR(-EINVAL); |
263 | count += bv->bv_len >> (device->s2b_shift + 9); | 263 | count += bv->bv_len >> (device->s2b_shift + 9); |
264 | #if defined(CONFIG_64BIT) | 264 | #if defined(CONFIG_64BIT) |
265 | if (idal_is_needed (page_address(bv->bv_page), | 265 | if (idal_is_needed (page_address(bv->bv_page), bv->bv_len)) |
266 | bv->bv_len)) | 266 | cidaw += bv->bv_len / blksize; |
267 | cidaw += bv->bv_len / blksize; | ||
268 | #endif | 267 | #endif |
269 | } | 268 | } |
270 | /* Paranoia. */ | 269 | /* Paranoia. */ |