From patchwork Mon Dec 5 07:56:19 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Liu X-Patchwork-Id: 129231 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4DDCF1007D4 for ; Mon, 5 Dec 2011 18:53:58 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752822Ab1LEHx4 (ORCPT ); Mon, 5 Dec 2011 02:53:56 -0500 Received: from mail-iy0-f174.google.com ([209.85.210.174]:47982 "EHLO mail-iy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752337Ab1LEHx4 (ORCPT ); Mon, 5 Dec 2011 02:53:56 -0500 Received: by mail-iy0-f174.google.com with SMTP id c1so1717735iak.19 for ; Sun, 04 Dec 2011 23:53:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=wSF74vmsYdCHecNPw5Dy8wkhz1r34SnCkoyibsbKTx0=; b=Se4latNfyEmCNFL9nyE4F0gfrO6E6DTDMH3kzOVWf1IB7t+gYrdYQ5NChyP5mggFBD 4pni2Il9uldVwi9Qfou98QFXrYBlKpSZcPOB48leUwnfJtmfO1QPdrLVuaQ3Lz5WUr60 LHudT5rC9tDEaSGqxmXAE2uF7PlF6djDpPFFg= Received: by 10.42.131.135 with SMTP id z7mr8565858ics.23.1323071636285; Sun, 04 Dec 2011 23:53:56 -0800 (PST) Received: from localhost.localdomain ([182.92.247.2]) by mx.google.com with ESMTPS id ds5sm8125490ibb.5.2011.12.04.23.53.53 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 04 Dec 2011 23:53:55 -0800 (PST) From: Zheng Liu To: linux-ext4@vger.kernel.org Cc: Jan Kara , Zheng Liu Subject: [PATCH] ext4: replace ll_rw_block with other functions Date: Mon, 5 Dec 2011 15:56:19 +0800 Message-Id: <1323071779-4697-1-git-send-email-wenqing.lz@taobao.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1322191841-9444-1-git-send-email-wenqing.lz@taobao.com> References: <1322191841-9444-1-git-send-email-wenqing.lz@taobao.com> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Zheng Liu ll_rw_block() is deprecated. Thus we replace it with other functions. CC: Jan Kara Signed-off-by: Zheng Liu --- fs/ext4/inode.c | 22 ++++++++++------------ fs/ext4/namei.c | 9 ++++++--- fs/ext4/super.c | 11 ++++++----- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index fffec40..2892d52 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -697,9 +697,11 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode, bh = ext4_getblk(handle, inode, block, create, err); if (!bh) return bh; - if (buffer_uptodate(bh)) + if (bh_uptodate_or_lock(bh)) return bh; - ll_rw_block(READ | REQ_META | REQ_PRIO, 1, &bh); + get_bh(bh); + bh->b_end_io = end_buffer_read_sync; + submit_bh(READ | REQ_META | REQ_PRIO, bh); wait_on_buffer(bh); if (buffer_uptodate(bh)) return bh; @@ -3301,12 +3303,10 @@ int ext4_discard_partial_page_buffers_no_lock(handle_t *handle, if (PageUptodate(page)) set_buffer_uptodate(bh); - if (!buffer_uptodate(bh)) { - err = -EIO; - ll_rw_block(READ, 1, &bh); - wait_on_buffer(bh); + if (!bh_uptodate_or_lock(bh)) { + err = bh_submit_read(bh); /* Uhhuh. Read error. Complain and punt.*/ - if (!buffer_uptodate(bh)) + if (err) goto next; } @@ -3423,12 +3423,10 @@ int ext4_block_zero_page_range(handle_t *handle, if (PageUptodate(page)) set_buffer_uptodate(bh); - if (!buffer_uptodate(bh)) { - err = -EIO; - ll_rw_block(READ, 1, &bh); - wait_on_buffer(bh); + if (!bh_uptodate_or_lock(bh)) { + err = bh_submit_read(bh); /* Uhhuh. Read error. Complain and punt. */ - if (!buffer_uptodate(bh)) + if (err) goto unlock; } diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index aa4c782..35301bc 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -921,9 +921,12 @@ restart: num++; bh = ext4_getblk(NULL, dir, b++, 0, &err); bh_use[ra_max] = bh; - if (bh) - ll_rw_block(READ | REQ_META | REQ_PRIO, - 1, &bh); + if (bh && !bh_uptodate_or_lock(bh)) { + get_bh(bh); + bh->b_end_io = end_buffer_read_sync; + submit_bh(READ | REQ_META | REQ_PRIO, + bh); + } } } if ((bh = bh_use[ra_ptr++]) == NULL) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 3858767..13a3259 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -4011,11 +4011,12 @@ static journal_t *ext4_get_dev_journal(struct super_block *sb, goto out_bdev; } journal->j_private = sb; - ll_rw_block(READ, 1, &journal->j_sb_buffer); - wait_on_buffer(journal->j_sb_buffer); - if (!buffer_uptodate(journal->j_sb_buffer)) { - ext4_msg(sb, KERN_ERR, "I/O error on journal device"); - goto out_journal; + if (!bh_uptodate_or_lock(journal->j_sb_buffer)) { + if (bh_submit_read(journal->j_sb_buffer)) { + ext4_msg(sb, KERN_ERR, + "I/O error on journal device"); + goto out_journal; + } } if (be32_to_cpu(journal->j_superblock->s_nr_users) != 1) { ext4_msg(sb, KERN_ERR, "External journal has more than one "