From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752068AbbCWC2v (ORCPT ); Sun, 22 Mar 2015 22:28:51 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:20511 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751949AbbCWC2s (ORCPT ); Sun, 22 Mar 2015 22:28:48 -0400 X-AuditID: cbfee61b-f79d76d0000024d6-61-550f7a5ef55b From: Chao Yu To: Jaegeuk Kim , Changman Lee Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] f2fs: limit b_size of mapped bh in f2fs_map_bh Date: Mon, 23 Mar 2015 10:28:00 +0800 Message-id: <002201d06511$16e17c70$44a47550$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AdBlEK6MXMQ8ycKPRo6LJoh6sjf2kg== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsVy+t9jQd34Kv5QgwuVFtf2NTJZPFk/i9ni 0iJ3i8u75rA5sHhsWtXJ5rF7wWcmj74tqxg9Pm+SC2CJ4rJJSc3JLEst0rdL4MrY8/A3e8F6 jopDO04yNzA+Yuti5OCQEDCR6LoZ0sXICWSKSVy4tx4ozMUhJDCdUeJl71R2COcVo8SOHXeY QKrYBFQklnf8B7NFBLwkJu0/wQJiMwt4SDR2fGcFsYUFnCX+729jAVnAIqAqcepkMEiYV8BS 4syRJnYIW1Dix+R7UK1aEpu3NbFC2PISm9e8ZYY4SEFix9nXjBCr9CRmz37IDFEjLrHxyC2W CYwCs5CMmoVk1Cwko2YhaVnAyLKKUTS1ILmgOCk910ivODG3uDQvXS85P3cTIzicn0nvYFzV YHGIUYCDUYmHtyOOP1SINbGsuDL3EKMEB7OSCG+sPVCINyWxsiq1KD++qDQntfgQozQHi5I4 r5J9W4iQQHpiSWp2ampBahFMlomDU6qBMXBFyZY7UzKXrTV4I67cd25J243frVc33Qs0yq2N sRXvMgixschgLumaw9d8///ZH/MCH6v8lXj/uNt1RrL00ynLa+5umuO0pk/Ybs0k+1m1Z3i0 vxXfnc2TNysp6nefNrf4Om+15Mel74QqG9oZzsx9wl1fe67ImO+6yRNmrszgb4uUrz/WUmIp zkg01GIuKk4EAFFQg7ljAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Map bh over max size which caller defined is not needed, limit it in f2fs_map_bh. Signed-off-by: Chao Yu --- fs/f2fs/data.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index f0a18a0..a99bc7f 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -255,15 +255,16 @@ static void f2fs_map_bh(struct super_block *sb, pgoff_t pgofs, struct extent_info *ei, struct buffer_head *bh_result) { unsigned int blkbits = sb->s_blocksize_bits; + unsigned int maxblocks = bh_result->b_size >> blkbits; size_t count; clear_buffer_new(bh_result); map_bh(bh_result, sb, ei->blk + pgofs - ei->fofs); count = ei->fofs + ei->len - pgofs; - if (count < (UINT_MAX >> blkbits)) - bh_result->b_size = (count << blkbits); + if (count > maxblocks) + bh_result->b_size = maxblocks << blkbits; else - bh_result->b_size = UINT_MAX; + bh_result->b_size = count << blkbits; } static bool lookup_extent_info(struct inode *inode, pgoff_t pgofs, -- 2.3.3