Whamcloud - gitweb
Branch b1_8_gate
authoradilger <adilger>
Wed, 22 Oct 2008 19:35:08 +0000 (19:35 +0000)
committeradilger <adilger>
Wed, 22 Oct 2008 19:35:08 +0000 (19:35 +0000)
Limit the requested bio size to the maximum possible size, or it will always
fail with -ENOMEM.
b=9945
i=johann

lustre/obdfilter/filter_io_26.c

index fd768c6..1fc34bf 100644 (file)
@@ -364,9 +364,10 @@ int filter_do_bio(struct obd_export *exp, struct inode *inode,
                                 frags++;
                         }
 
-                        /* allocate new bio */
-                        bio = bio_alloc(GFP_NOIO,
-                                        (npages - page_idx) * blocks_per_page);
+                        /* allocate new bio, limited by max BIO size, b=9945 */
+                        bio = bio_alloc(GFP_NOIO, max(BIO_MAX_PAGES,
+                                                     (npages - page_idx) *
+                                                     blocks_per_page));
                         if (bio == NULL) {
                                 CERROR("Can't allocate bio %u*%u = %u pages\n",
                                        (npages - page_idx), blocks_per_page,