From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752064AbbCXFIx (ORCPT ); Tue, 24 Mar 2015 01:08:53 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:62452 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750906AbbCXFIw (ORCPT ); Tue, 24 Mar 2015 01:08:52 -0400 X-AuditID: cbfee61a-f79c06d000004e71-9e-5510f1628418 From: Chao Yu To: Jaegeuk Kim , Changman Lee Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH v2] f2fs: limit b_size of mapped bh in f2fs_map_bh Date: Tue, 24 Mar 2015 13:08:05 +0800 Message-id: <003401d065f0$9cdcb210$d6961630$@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: AdBl78URxAyIqBZ/Qtq+UzyKqssayQ== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsVy+t9jAd2kjwKhBkf+81tc29fIZPFk/Sxm i0uL3C0u75rD5sDisWlVJ5vH7gWfmTz6tqxi9Pi8SS6AJYrLJiU1J7MstUjfLoEr40zjLPaC /xwVd76sZ2pgXM7excjJISFgIjHl62YWCFtM4sK99WxdjFwcQgKLGCW+TT3LCJIQEnjFKDFz Zi2IzSagIrG84z8TiC0i4CUxaf8JsGZmAQ+Jxo7vrF2MHBzCAk4S3dsNQMIsAqoSXyc3gI3h FbCUmHVyBROELSjxY/I9qFYtic3bmlghbHmJzWveMkPcoyCx4+xrRpCRIgJ6ErOXBEKUiEts PHKLZQKjwCwkk2YhmTQLyaRZSFoWMLKsYhRNLUguKE5KzzXUK07MLS7NS9dLzs/dxAgO52dS OxhXNlgcYhTgYFTi4Q1YIhAqxJpYVlyZe4hRgoNZSYTX+zJQiDclsbIqtSg/vqg0J7X4EKM0 B4uSOK+SfVuIkEB6YklqdmpqQWoRTJaJg1OqgXFVQLlVyDmZjOsvI697/vvh5L307eX6r+ae +++WLzQT0V/zZ9EnlkBNxRd81hu3yub/TTno84DHR6lGWUww7G5NZiXDtyD7Rdb2iX5hkhOs j1ydaXlCQHGRYdIRi7qrq+Mefo3y5svc63Zg78/UP0edr7I7Hl/gmzY3LfFOfT5ft4cYf+e2 NiWW4oxEQy3mouJEANJxAqVjAgAA 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 --- v2 change log: - use min() for cleanup code suggested by Jaegeuk Kim. fs/f2fs/data.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index f0a18a0..279c9c6e 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -255,15 +255,13 @@ 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; - size_t count; + size_t max_size = bh_result->b_size; + size_t mapped_size; 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); - else - bh_result->b_size = UINT_MAX; + mapped_size = (ei->fofs + ei->len - pgofs) << blkbits; + bh_result->b_size = min(max_size, mapped_size); } static bool lookup_extent_info(struct inode *inode, pgoff_t pgofs, -- 2.3.3