iscsi-target: Fix iov_count calculation bug in iscsit_allocate_iovecs
authorNicholas Bellinger <nab@linux-iscsi.org>
Mon, 21 May 2012 00:10:29 +0000 (17:10 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Mon, 21 May 2012 00:25:24 +0000 (17:25 -0700)
commitf80e8ed3951455272c12693e35b259be8eb60b30
tree0b348e90da1ce8e98d45346084ad2a1be47cbc78
parentb1e41d8cd43910fee82f27ab1381bc6cd66910b3
iscsi-target: Fix iov_count calculation bug in iscsit_allocate_iovecs

This patch fixes a bug in iscsit_allocate_iovecs() where iov_count was
incorrectly calculated using min(1UL, data_length / PAGE_SIZE) instead of
max(1UL, data_length / PAGE_SIZE), that ends up triggering an OOPs for
large block I/O when the SGL <-> iovec mapping exceeds the bogus iov_count
allocation size.

This is a regression introduced during the iscsi-target conversion back
to using core memory allocation here:

commit bfb79eac2026b411df9e253a9c350039b4b04bb7
Author: Andy Grover <agrover@redhat.com>
Date:   Tue Apr 3 15:51:29 2012 -0700

    target/iscsi: Go back to core allocating data buffer for cmd

Cc: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/iscsi/iscsi_target.c