From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id q4BEas6E037680 for ; Fri, 11 May 2012 09:36:54 -0500 Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) by cuda.sgi.com with ESMTP id ZUObaoYlcticMCT2 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 May 2012 07:36:54 -0700 (PDT) Message-ID: <4FAD23F7.2080605@kernel.dk> Date: Fri, 11 May 2012 16:36:39 +0200 From: Jens Axboe MIME-Version: 1.0 Subject: Re: [PATCH] bio allocation failure due to bio_get_nr_vecs() References: <4FABF01E.7080303@itwm.fraunhofer.de> <4FAD18D4.3090102@itwm.fraunhofer.de> In-Reply-To: <4FAD18D4.3090102@itwm.fraunhofer.de> List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: xfs-bounces@oss.sgi.com Errors-To: xfs-bounces@oss.sgi.com To: Bernd Schubert Cc: "linux-fsdevel@vger.kernel.org" , linux-xfs@oss.sgi.com, Tejun Heo , sandeen@sandeen.net, Kent Overstreet On 05/11/2012 03:49 PM, Bernd Schubert wrote: > The number of bio_get_nr_vecs() is passed down via bio_alloc() to > bvec_alloc_bs(), which fails the bio allocation if > nr_iovecs > BIO_MAX_PAGES. For the underlying caller this causes an > unexpected bio allocation failure. > Limiting to queue_max_segments() is not sufficient, as max_segments > also might be very large. > > bvec_alloc_bs(gfp_mask, nr_iovecs, ) => NULL when nr_iovecs > BIO_MAX_PAGES > bio_alloc_bioset(gfp_mask, nr_iovecs, ...) > bio_alloc(GFP_NOIO, nvecs) > xfs_alloc_ioend_bio() Thanks, looks sane. Applied. -- Jens Axboe _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs