Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp350190ybz; Thu, 30 Apr 2020 23:31:10 -0700 (PDT) X-Google-Smtp-Source: APiQypIeE+0RwLvRp+0r56PU5UG7i11fu7VmaXntBQm2sUazNxVaS6qlTtj3uxhxO52G2NxqWT5L X-Received: by 2002:a05:6402:1008:: with SMTP id c8mr2207953edu.242.1588314670616; Thu, 30 Apr 2020 23:31:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588314670; cv=none; d=google.com; s=arc-20160816; b=nxuKFF/Rsc7s/cqlVwFcfQmXYJRiKJvx1kK/PcXOLIWH18mbDplM5Gri/Jz0RQ0wgn z5qDklF3jwwVj7oaOwmHxdA1gS4KuBLzDNlWGrltRzAGBngUneQZUNLCxlEty36SCcWn ka2fQiREDJV5L4HQyDlWTjh6Fy32gjnaDSckD0+0RmFlkrzecCyenYlbv+6jmmuDlyz/ hIhybKso2+yncvYb41evYVe9hzWtUwTq8CaG6nMxz1hDVi8l9ZdF5Yi404kREtBI3rZU Kt3lV1Lgtw2nsw/3nBRbHhcY8sCXbk0eFMCPolMzcOnuHHlFvKMj8fJjiUuv1HU+qWCQ dukw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=CA0in0SK4Y1tIeLZUtte/nq9zG5vbfFqlC9+NzP0SFY=; b=XKl3PSykuM+nm9T9JauWjRybunZ2I4Orw9/EBmfPxDolUea6sVq92mC61HkQ9BwlKB uBLZY57Xzm3Nq/ZmH5GrOel799llrprgM/Qm/LUZcNZXdvVyTkmed9dP5ihQpDSOsEd7 xdNG6onyd8J4ZlPHmUQgX7v3+x9irEYj6xcL0GundiG7ZDMA+45jQd2amoNIl5memCKu Xo5pOqQADITzlPnMD++5QJTTMW43llG4SSznyKdQ0SwSjUvRYn+zl/wuPoTgt11FpwDw OZUmHO5oIKPxZrDY3LqhN3M9hopP/oKmWvTbMp42Y8sPJ9bc5qRkwYavVh4CHG2+0i14 w3Kg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z6si1208188edp.440.2020.04.30.23.30.32; Thu, 30 Apr 2020 23:31:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728217AbgEAGaX (ORCPT + 99 others); Fri, 1 May 2020 02:30:23 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:32818 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728126AbgEAGaW (ORCPT ); Fri, 1 May 2020 02:30:22 -0400 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04161SeF074330; Fri, 1 May 2020 02:30:15 -0400 Received: from ppma01fra.de.ibm.com (46.49.7a9f.ip4.static.sl-reverse.com [159.122.73.70]) by mx0a-001b2d01.pphosted.com with ESMTP id 30r81ggyrw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 May 2020 02:30:15 -0400 Received: from pps.filterd (ppma01fra.de.ibm.com [127.0.0.1]) by ppma01fra.de.ibm.com (8.16.0.27/8.16.0.27) with SMTP id 0416AvJR014986; Fri, 1 May 2020 06:30:13 GMT Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by ppma01fra.de.ibm.com with ESMTP id 30mcu8fa98-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 May 2020 06:30:13 +0000 Received: from b06wcsmtp001.portsmouth.uk.ibm.com (b06wcsmtp001.portsmouth.uk.ibm.com [9.149.105.160]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 0416UAru64553070 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 1 May 2020 06:30:10 GMT Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CD2F2A4064; Fri, 1 May 2020 06:30:10 +0000 (GMT) Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 41E0BA4068; Fri, 1 May 2020 06:30:09 +0000 (GMT) Received: from localhost.localdomain.com (unknown [9.85.81.13]) by b06wcsmtp001.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 1 May 2020 06:30:09 +0000 (GMT) From: Ritesh Harjani To: linux-ext4@vger.kernel.org Cc: "Paul E . McKenney" , linux-fsdevel@vger.kernel.org, Jan Kara , tytso@mit.edu, "Aneesh Kumar K . V" , Ritesh Harjani Subject: [RFC 01/20] ext4: mballoc: Refactor ext4_mb_discard_preallocations() Date: Fri, 1 May 2020 11:59:43 +0530 Message-Id: <6edef7f5ced72cb3cbec0585df84159a58c9ea59.1588313626.git.riteshh@linux.ibm.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-05-01_01:2020-04-30,2020-05-01 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 spamscore=0 mlxscore=0 priorityscore=1501 suspectscore=1 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2005010040 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Implement ext4_mb_discard_preallocations_should_retry() which we will need in later patches to add more logic like check for sequence number match to see if we should retry for block allocation or not. There should be no functionality change in this patch. Signed-off-by: Ritesh Harjani --- fs/ext4/mballoc.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 30d5d97548c4..a742e51e33b8 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -4486,6 +4486,17 @@ static int ext4_mb_discard_preallocations(struct super_block *sb, int needed) return freed; } +static bool ext4_mb_discard_preallocations_should_retry(struct super_block *sb, + struct ext4_allocation_context *ac) +{ + int freed; + + freed = ext4_mb_discard_preallocations(sb, ac->ac_o_ex.fe_len); + if (freed) + return true; + return false; +} + /* * Main entry point into mballoc to allocate blocks * it tries to use preallocation first, then falls back @@ -4494,7 +4505,6 @@ static int ext4_mb_discard_preallocations(struct super_block *sb, int needed) ext4_fsblk_t ext4_mb_new_blocks(handle_t *handle, struct ext4_allocation_request *ar, int *errp) { - int freed; struct ext4_allocation_context *ac = NULL; struct ext4_sb_info *sbi; struct super_block *sb; @@ -4593,8 +4603,7 @@ ext4_fsblk_t ext4_mb_new_blocks(handle_t *handle, ar->len = ac->ac_b_ex.fe_len; } } else { - freed = ext4_mb_discard_preallocations(sb, ac->ac_o_ex.fe_len); - if (freed) + if (ext4_mb_discard_preallocations_should_retry(sb, ac)) goto repeat; *errp = -ENOSPC; } -- 2.21.0