From patchwork Fri Sep 2 19:40:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 9311577 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7469160772 for ; Fri, 2 Sep 2016 19:41:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5DB8029835 for ; Fri, 2 Sep 2016 19:41:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 50A3A2984D; Fri, 2 Sep 2016 19:41:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B751629835 for ; Fri, 2 Sep 2016 19:41:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932779AbcIBTln (ORCPT ); Fri, 2 Sep 2016 15:41:43 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:57940 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932424AbcIBTlm (ORCPT ); Fri, 2 Sep 2016 15:41:42 -0400 Received: from pps.filterd (m0001255.ppops.net [127.0.0.1]) by mx0b-00082601.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u82JXD4a015990 for ; Fri, 2 Sep 2016 12:41:41 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fb.com; h=from : to : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=facebook; bh=s2V7DbGj0hGiQotEV/attDzGk00U4HhAvI9cbpzxsJ4=; b=lPmjYeO4u6lq72yNbOScC/EO61ZJ1VJ9v3liuIw666IjFRrD4ca2jI0xg43SWv7yeJRk BEphR8S06sV40pJB2SrKiovK50DvkUQZgWEquccEY8NG4O3YJ8lR4F7ljkbckNuf8IBM kbXIHIrkd0AtEk0n03pNszHkjfcsdBCmM2s= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0b-00082601.pphosted.com with ESMTP id 256qdu94fx-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Fri, 02 Sep 2016 12:41:41 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.12) with Microsoft SMTP Server (TLS) id 14.3.294.0; Fri, 2 Sep 2016 12:41:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=amyuTQcS+XDMdHKJVL+w9+MX6XjNDi+OqRF0POy1Sbs=; b=ammJFNtyXV9vrb+dS7qwX/kxDfW78jPoSwLj7rQfci1aqW5AI/Mg69aPS1NsSYwpatVAxJNbkGiy9NkMJdNL9eW59O5Qj73Ji1/w4sGmopWuCHj6WIoWVuIqPWWn4VqPVutTRM7bcDLyhRame1fk5Ofj2zyck9ify3lO7msEbGg= Received: from localhost (107.15.72.49) by CY4PR15MB1319.namprd15.prod.outlook.com (10.172.182.7) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.599.9; Fri, 2 Sep 2016 19:41:36 +0000 From: Josef Bacik To: , Subject: [PATCH 4/7] Btrfs: kill the start argument to read_extent_buffer_pages Date: Fri, 2 Sep 2016 15:40:03 -0400 Message-ID: <1472845206-22870-5-git-send-email-jbacik@fb.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1472845206-22870-1-git-send-email-jbacik@fb.com> References: <1472845206-22870-1-git-send-email-jbacik@fb.com> MIME-Version: 1.0 X-Originating-IP: [107.15.72.49] X-ClientProxiedBy: BN6PR12CA0011.namprd12.prod.outlook.com (10.168.222.21) To CY4PR15MB1319.namprd15.prod.outlook.com (10.172.182.7) X-MS-Office365-Filtering-Correlation-Id: cad71796-cb15-4c81-db78-08d3d3692713 X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1319; 2:IB61gYwm2Y2zIqCCZzJ5reqeCZZrYx2UuGRT5druIT56uaskHsgfSRWoy1pDnxE+909sbzz0j0476px11MxXii5gFDwh1vinho/DekvKJ2F2S9Em+rWkhPtwmJ5j5jf11u2KGyP0ureFpecxhn3IUZhm6ZXgM6W9PZdrsJp8eK8JF3mGLC1r4PU4Ay2k5vjg; 3:6/YBdjrFINgym1Rh5ZBkfPeMYqTVUIBZSpY2tBf2dZB7AZRyCP2mx2K5wpe0g1h/D+REBn2OXP8Xz0iMdVbw3o32Hnc3ACyWDAxW8bf6Z4X9NTuWwr3IvzP/g1PFl7It X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR15MB1319; X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1319; 25:B+OgikBTiDgJcg2hGq7CVdgFfaPxa71S1he8Qf8NRr2eE8dq97EJtxcdS1qce6d3WHQwchKwCX0Mr2Qy4tuCSjOQiiUyd55Kq8UBmjYV55+6JQZx09pKiBL8H/ycd3oL5RAyKXyXhxGs2mAr4wafm8wnr2v1V2ysJY16JLnwSW/L1abpQNMvn9g/6H0X5VOS7Z9Do6TAKtDlIwOqtE6qQIpiUsGFDwzUoRkOnmX6r0/9pVr5ViDXMPeQJ6ePd/0eIJh+5TAxWMMxMPfBg18gDHybkmzyZ1FS+ucd75YFF9qtkpO+QgMBp+aKlEH/BvnLVOGy/zetZ4wQ+5lCU4HLu8075AufSObzLaLebxC/32X/Ffvn/iZbCwynPxwDXSMAuNfeSA2ec17M9XrZARWLbKdUXgEy79N80dNYqdcELVbHCbX6C3Bxl/saO9qVp2B9FxWuVXaG5SEv9x7nJY6B4v4ae/i8q6/4xkKfaFOY4TEIA1t2DvaNLTIKxFCKLJpf0vfILlj1V3IOIDje6E/woX/8P1fnRAkbB9Daf5iPQtE62UoA/6IQM2T4BHv+LC3NOlFLRIKTKaGtVPXQvRI3rp7eVECGFuolATNisq+0tMWru+GAWzmR4nf9osvG7vWoNIjz36oitL/UsZefVta1wToPMwhgVk/T01WWWoBzH7UImLIGKuAj2qUrONoRMWVB/wOmnX2eUblFSSClaPwBVKiXWBIHK7iFOnfPFG3ipsYgoPmoDS8/2HV32QCgJhXn X-LD-Processed: 8ae927fe-1255-47a7-a2af-5f3a069daaa2,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1319; 31:dO9Bn1JPv0HnM1z5P6T3uiFtXloTVp0JRqxcpr0GKgHBdmFbjwbn34Evrx7XUBG4o/i9efpb9rmb9hCRCi2AQN9EYAv+F2n8iGDanCURJHKn99CvZg2cnExJ5Ibhl+aeQK987YYC4/huthR2bPPGqBT2btXHN3FnrBvzzyNoZDlaKFL1RSCR8aZm3+knAMfdN97J8BiLscimfzRdNn+HpgObgxmtrbSjJuOECjL9yMM=; 20:2nCgmMlXpbN3MqtnkWh5RDE1gtjAqry1J9C1OFw7+r5Ixv4YICSc6G759fVoMpjA0qYtLUH4Pl/SfZNN1sJaw8WNc0ZUP86bCtpcg4ZXnSw1zw9wMtjyh8lyKpjUQtw1yuhEzLdzKQhhhS9tX6NjfU3Yh90/li9vp1l/ZbcdUz8=; 4:7HORo8HRd935S/hLo3lUvjSeXZoewOb7wlQAzjKJLQP1dF0cXR9QimOjm3WMKs0ESC40eWsDiUrRdk1QR4LpyU4ePKLv+nIer0JY+C+nYx5UfDkCTu404mqChLOdwbsqZrNSGQOnP3Guy6xH2pjk1bveuCyRBWjytdZBqzPd41oyp2/61xi7wVS9d1qXeyQfqVlvl9HNWwjRCVarGx9El86IJUOEX1W1TFstHTH5M/iNEcxxw+E3MpnGhBvepo01lxMfcz3vyT8xrnS1txojpi8qSDl1Rk/Euz2cHu19Ny/EzCb30rMWt6QQ4sl06jWV5PdMdgez7NZCv7LIsStHsxD93wAVsh8FMa11hkwRtdweIWeYXcMxedtcQ4pWses74ysM+JSHbdBroyC+6ETl0tusBrabDFNd8FDXlNjFmjVxxMJpwzZSZQd6TlQZtJCs X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046); SRVR:CY4PR15MB1319; BCL:0; PCL:0; RULEID:; SRVR:CY4PR15MB1319; X-Forefront-PRVS: 00531FAC2C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6069001)(7916002)(199003)(189002)(81156014)(86362001)(2906002)(7736002)(47776003)(450100001)(36756003)(42186005)(48376002)(7846002)(305945005)(50226002)(92566002)(229853001)(8676002)(3846002)(50466002)(5001770100001)(5660300001)(76506005)(2950100001)(77096005)(81166006)(6116002)(19580405001)(19580395003)(5003940100001)(76176999)(68736007)(107886002)(189998001)(586003)(66066001)(97736004)(50986999)(101416001)(33646002)(106356001)(105586002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR15MB1319; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: fb.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR15MB1319; 23:imdB3Sr9FcvdloUJ2ASHmLtD9Cu3diUIkGHbgf4qM?= =?us-ascii?Q?IvUw0Gh0k+zNJQZ0JJGVms6yJI4JU9dDgGxgGSPU+Wo/MQLs8JeaazFza4gs?= =?us-ascii?Q?DoT72K0sZz5eVv+DW3tDkLx26ZuEd9rgzDP+C8iGgz9lFNRAfu4C7rSQsn1k?= =?us-ascii?Q?dcPUBgxjvtgCGNoQBnb7y3t7NGKfmV9czXDOWDrODPHdmQPh/qTH1zlfkKkN?= =?us-ascii?Q?oJQu/TURI2SJ2YFImMoFrsW6BstcLDOGiOIc+Ltu7CVIOkpFnLrAAKAZMv7p?= =?us-ascii?Q?WPzFzzX6JS85iM1OwI2OOxQwtdW21DjJ/2NNrZlk0uHHapA0WZV91WP7kbBb?= =?us-ascii?Q?tsfvmabqr2NsHlex8KrmbsHUaP7RCRJi0ySts7+XWwn5zznkiex74LciMMPD?= =?us-ascii?Q?7q4902p2o1TmXxKaCZSmd+i4S9PSganOIu/EdWe3UIfY6ocpptP12IMS6gQu?= =?us-ascii?Q?TRxqqKB+jmX8ZyvbN8OxD6emivKRogXvaAU7eHHeX6L83/xbroR+FIIBj/Og?= =?us-ascii?Q?J5sV1NvsrZM1mL/B/IkS5gN1VmlQnvlzVzsUFxQcenU8S+hBe8oujJgfl6O3?= =?us-ascii?Q?VS/sVp1MyP5c5p62cFUcNYzzmFRISfqQ1ddUPQPRS8qalHjey51LTO+Puu6U?= =?us-ascii?Q?UT8FP5VfAncPOtABbqEzpnWL1WD0w+4iMStWcbyQzcWoWBpl38c6YZYR/ioB?= =?us-ascii?Q?xH+o0lTAtEUENLCIX5ccKJIa58eQVr00mKIZlojYc9RaH512s3A9P+7tmTAQ?= =?us-ascii?Q?7Vo1BQzSUJgdIMRheHc9astcgXiP8TQnLA3bZf0ohbvmziFqyDWhs4crz6m3?= =?us-ascii?Q?P1PktuT+ptpID+M4mgZRTnHnZ+XXWatTB6ToW4TV7GIq9b3ZVZwlJ0eurtMq?= =?us-ascii?Q?gRPzGHPIUnuiDqMVRmFbfkwsbAWDQ2/A6vI7GmqlTMH1Cb+vmR9KeUGvuRR3?= =?us-ascii?Q?0pulRBcKohiFbIxkr4OJhWmILZKV5nmxgXL/rlkfg1Ga5P0ao145hLrpCe/A?= =?us-ascii?Q?nhNh4onWp8Tb92xIqqcAQ9Rkh8ovH2uRgbwJ7QO/Nag+WQcceQrIp6rIKXOI?= =?us-ascii?Q?Ml4N/FxTWESxCJ1jLu7+Eoy22FPh3XGHsdTpxSKdfSRllHqwMSDVN5QGIj+u?= =?us-ascii?Q?eCsBuu/mKfNmhCYndD8pMHgymYp1lkbkABaPpHAyRQndtkq9KbP6g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1319; 6:aJK2EVRa9V1LoXfWdTzmy32Hvk5ft0BIfSw4I2KdTvlNhaYVlXKQ5IxLOSauHbLi0Wki/1v6rdvYFT+6AYpEStZcvjY8PaZJlsPS6QQ3u5ByX8QodRYZJwYEC8FJeHKwwscL8ef6Tp+GfBYWKsoNjQVUj/WZyhiiYIWERyUW/0E0AVotlj4Y7S790ih2YpzlVyfM9aN1YCUu6DGoE6brKYuNHfPqGIExyIEtOWd9R26cdL8ezvcwfF9JTXfuSoOBD7r4u95sv6J2VABDGGYnizy1nA6PUvlRqGshfLUFlXg=; 5:XW/RnV2OnbG+FTkTIZcip6F1xM170Y2I8LFKM95p3sntXpNPwXUYGlT8gzs5uQZnHntJr42H4rs6H7OKPPDeoX2GSNJndSqZBRJ+Xc2vd3j0Gmuip/fEyYZip/jxPgjxv78lSr77nTkQ5Jo+mAaGAQ==; 24:xzN/JdvhrgxGHN8CUkgXjoxHxkZUtZ+GSvVlLMetuVeI/SMkYKFVleOls+J6KC+5gBvMfNrCafaNxlMRyPj42aBom5hKPEIZEPqpUtUxUFE=; 7:eJC2wyr/UZmOyjrpiu0YlImiSTl7PyO5LKWkOk7WbBhY3ClWsA1fzN+3bA3mpPz0tHwitgs4rE41MOVOgjO8HCpZegEj++zCher3cglqoorewTnHC7z73k2/kTmVvSi8uY3sTC5LSrT2Uk/c5AbayMpPy0jAFa+VnAjp8Fhl3pTjNVjZPJlLDXqWsnKVmtgPVpI3LNgdj6ZACqM+KpKmXT73Ad8k2YMKquI/PtqgDtvUIRTo/BazhIq5NMpxDp7e SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1319; 20:zoBDF+geOI8ofTRTMvRtwZwwowA2UUWJF0l9kwTaYhl5yb/Ig2PvGMbaRTVT+qrIuIpq93Yb/01SK0MZReT+LSZNAsa7TiYFFWzimgxKv7vHZXjnShbNgjp4qCS1GywB3olVTcIW7dzmPko5X3XVGchDP0gMU43gv0LNVXkX3s8= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2016 19:41:36.7379 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1319 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-09-02_06:, , signatures=0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Nobody uses this, it makes no sense to do partial reads of extent buffers. Signed-off-by: Josef Bacik Reviewed-by: David Sterba --- fs/btrfs/disk-io.c | 13 ++++++------- fs/btrfs/extent_io.c | 26 +++++++------------------- fs/btrfs/extent_io.h | 2 +- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index ebd33ef..9c42e53 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -443,7 +443,7 @@ static int btrfs_check_super_csum(char *raw_disk_sb) */ static int btree_read_extent_buffer_pages(struct btrfs_root *root, struct extent_buffer *eb, - u64 start, u64 parent_transid) + u64 parent_transid) { struct extent_io_tree *io_tree; int failed = 0; @@ -455,8 +455,7 @@ static int btree_read_extent_buffer_pages(struct btrfs_root *root, clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); io_tree = &BTRFS_I(root->fs_info->btree_inode)->io_tree; while (1) { - ret = read_extent_buffer_pages(io_tree, eb, start, - WAIT_COMPLETE, + ret = read_extent_buffer_pages(io_tree, eb, WAIT_COMPLETE, btree_get_extent, mirror_num); if (!ret) { if (!verify_parent_transid(io_tree, eb, @@ -1098,7 +1097,7 @@ void readahead_tree_block(struct btrfs_root *root, u64 bytenr) if (IS_ERR(buf)) return; read_extent_buffer_pages(&BTRFS_I(btree_inode)->io_tree, - buf, 0, WAIT_NONE, btree_get_extent, 0); + buf, WAIT_NONE, btree_get_extent, 0); free_extent_buffer(buf); } @@ -1116,7 +1115,7 @@ int reada_tree_block_flagged(struct btrfs_root *root, u64 bytenr, set_bit(EXTENT_BUFFER_READAHEAD, &buf->bflags); - ret = read_extent_buffer_pages(io_tree, buf, 0, WAIT_PAGE_LOCK, + ret = read_extent_buffer_pages(io_tree, buf, WAIT_PAGE_LOCK, btree_get_extent, mirror_num); if (ret) { free_extent_buffer(buf); @@ -1172,7 +1171,7 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr, if (IS_ERR(buf)) return buf; - ret = btree_read_extent_buffer_pages(root, buf, 0, parent_transid); + ret = btree_read_extent_buffer_pages(root, buf, parent_transid); if (ret) { free_extent_buffer(buf); return ERR_PTR(ret); @@ -4035,7 +4034,7 @@ void btrfs_btree_balance_dirty_nodelay(struct btrfs_root *root) int btrfs_read_buffer(struct extent_buffer *buf, u64 parent_transid) { struct btrfs_root *root = BTRFS_I(buf->pages[0]->mapping->host)->root; - return btree_read_extent_buffer_pages(root, buf, 0, parent_transid); + return btree_read_extent_buffer_pages(root, buf, parent_transid); } static int btrfs_check_super_valid(struct btrfs_fs_info *fs_info, diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 6036431..045e525 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -5157,11 +5157,10 @@ int extent_buffer_uptodate(struct extent_buffer *eb) } int read_extent_buffer_pages(struct extent_io_tree *tree, - struct extent_buffer *eb, u64 start, int wait, + struct extent_buffer *eb, int wait, get_extent_t *get_extent, int mirror_num) { unsigned long i; - unsigned long start_i; struct page *page; int err; int ret = 0; @@ -5175,16 +5174,8 @@ int read_extent_buffer_pages(struct extent_io_tree *tree, if (test_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags)) return 0; - if (start) { - WARN_ON(start < eb->start); - start_i = (start >> PAGE_SHIFT) - - (eb->start >> PAGE_SHIFT); - } else { - start_i = 0; - } - num_pages = num_extent_pages(eb->start, eb->len); - for (i = start_i; i < num_pages; i++) { + for (i = 0; i < num_pages; i++) { page = eb->pages[i]; if (wait == WAIT_NONE) { if (!trylock_page(page)) @@ -5199,15 +5190,14 @@ int read_extent_buffer_pages(struct extent_io_tree *tree, } } if (all_uptodate) { - if (start_i == 0) - set_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags); + set_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags); goto unlock_exit; } clear_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags); eb->read_mirror = 0; atomic_set(&eb->io_pages, num_reads); - for (i = start_i; i < num_pages; i++) { + for (i = 0; i < num_pages; i++) { page = eb->pages[i]; if (!PageUptodate(page)) { @@ -5248,7 +5238,7 @@ int read_extent_buffer_pages(struct extent_io_tree *tree, if (ret || wait != WAIT_COMPLETE) return ret; - for (i = start_i; i < num_pages; i++) { + for (i = 0; i < num_pages; i++) { page = eb->pages[i]; wait_on_page_locked(page); if (!PageUptodate(page)) @@ -5258,12 +5248,10 @@ int read_extent_buffer_pages(struct extent_io_tree *tree, return ret; unlock_exit: - i = start_i; while (locked_pages > 0) { - page = eb->pages[i]; - i++; - unlock_page(page); locked_pages--; + page = eb->pages[locked_pages]; + unlock_page(page); } return ret; } diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h index 61adf16..0518e3e 100644 --- a/fs/btrfs/extent_io.h +++ b/fs/btrfs/extent_io.h @@ -361,7 +361,7 @@ void free_extent_buffer_stale(struct extent_buffer *eb); #define WAIT_COMPLETE 1 #define WAIT_PAGE_LOCK 2 int read_extent_buffer_pages(struct extent_io_tree *tree, - struct extent_buffer *eb, u64 start, int wait, + struct extent_buffer *eb, int wait, get_extent_t *get_extent, int mirror_num); void wait_on_extent_buffer_writeback(struct extent_buffer *eb);