[SCSI] libfc: Remove page flags check for sglist
authorYi Zou <yi.zou@intel.com>
Thu, 30 Jul 2009 00:05:40 +0000 (17:05 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 22 Aug 2009 22:52:10 +0000 (17:52 -0500)
I don't believe this check is needed any more in the current kernel, which,
if I understand correctly, is for compound page where only the first page
is supposed to get ref-counted.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_fcp.c

index 2069edf80268626f522500d5cac3bca33c6eda8e..7d5ffcbbf39bf29eb530c17e36fea2faccd369dd 100644 (file)
@@ -507,33 +507,6 @@ static int fc_fcp_send_data(struct fc_fcp_pkt *fsp, struct fc_seq *seq,
        f_ctl = FC_FC_REL_OFF;
        WARN_ON(!seq);
 
-       /*
-        * If a get_page()/put_page() will fail, don't use sg lists
-        * in the fc_frame structure.
-        *
-        * The put_page() may be long after the I/O has completed
-        * in the case of FCoE, since the network driver does it
-        * via free_skb().  See the test in free_pages_check().
-        *
-        * Test this case with 'dd </dev/zero >/dev/st0 bs=64k'.
-        */
-       if (using_sg) {
-               for (sg = scsi_sglist(sc); sg; sg = sg_next(sg)) {
-                       if (page_count(sg_page(sg)) == 0 ||
-                           (sg_page(sg)->flags & (1 << PG_lru |
-                                                  1 << PG_private |
-                                                  1 << PG_locked |
-                                                  1 << PG_active |
-                                                  1 << PG_slab |
-                                                  1 << PG_swapcache |
-                                                  1 << PG_writeback |
-                                                  1 << PG_reserved |
-                                                  1 << PG_buddy))) {
-                               using_sg = 0;
-                               break;
-                       }
-               }
-       }
        sg = scsi_sglist(sc);
 
        while (remaining > 0 && sg) {