| To: | Jan Kara <jack@xxxxxxx> |
|---|---|
| Subject: | Re: [PATCH v2] xfs: Fix overallocation in xfs_buf_allocate_memory() |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Wed, 20 Jun 2012 02:39:01 -0400 |
| Cc: | xfs@xxxxxxxxxxx, Ben Myers <bpm@xxxxxxx>, Alex Elder <elder@xxxxxxxxxx>, David Chinner <dchinner@xxxxxxxxxx> |
| In-reply-to: | <1338935546-3914-1-git-send-email-jack@xxxxxxx> |
| References: | <1338935546-3914-1-git-send-email-jack@xxxxxxx> |
| User-agent: | Mutt/1.5.21 (2010-09-15) |
On Wed, Jun 06, 2012 at 12:32:26AM +0200, Jan Kara wrote: > Commit de1cbee which removed b_file_offset in favor of b_bn introduced a bug > causing xfs_buf_allocate_memory() to overestimate the number of necessary > pages. The problem is that xfs_buf_alloc() sets b_bn to -1 and thus > effectively > every buffer is straddling a page boundary which causes > xfs_buf_allocate_memory() to allocate two pages and use vmalloc() for access > which is unnecessary. > > Dave says xfs_buf_alloc() doesn't need to set b_bn to -1 anymore since the > buffer is inserted into the cache only after being fully initialized now. > So just make xfs_buf_alloc() fill in proper block number from the beginning. Looks good. The b_io_length initialization in xfs_buf_get can also be removed, but as that's a cosmetic change it can way for 3.6. Reviewed-by: Christoph Hellwig <hch@xxxxxx> |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH 2/9] xfs: convert internal buffer functions to pass maps, Dave Chinner |
|---|---|
| Next by Date: | Re: [PATCH v2] xfs: Fix overallocation in xfs_buf_allocate_memory(), Dave Chinner |
| Previous by Thread: | [PATCH v2] xfs: Fix overallocation in xfs_buf_allocate_memory(), Jan Kara |
| Next by Thread: | Re: [PATCH v2] xfs: Fix overallocation in xfs_buf_allocate_memory(), Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |