Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp671143ybh; Tue, 10 Mar 2020 06:13:23 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvtuKAVv4oKuliB+ugK3fjyWYGI6AbRYWX6g4EzufR2UmHRvYULIpvQMuF9NldFKqwxa9xY X-Received: by 2002:a05:6808:195:: with SMTP id w21mr1089477oic.18.1583846002989; Tue, 10 Mar 2020 06:13:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583846002; cv=none; d=google.com; s=arc-20160816; b=GcZBVHY7pMoRrxWiuJkMpLYMSvU/hE28oYVq8wcucjAp9MsdLSKnEWgvEbOvHGFNcD gD8KeeTqlBm5K2O5BWls8TJGN6KpMYpEOtnfa0U35yAZi2yX8Y0yWkSUNWHYJUG++nUC xBVfElgKmEGcEbbwfAMUdpnnFh3UvFu07BMq4WthWZwmuznA5QyJVifwuRzeZG0jSi49 /JmsVgx9Xn9HzIjNBDfAI+YpUOgYxrk3T4KYjPrDaycvbtXdLo/Gp4yWnXP8phxWptqw ycHk8dVpARHfuFG3SjTBHTtfpT+1HP0zpBTtpmUwB8l1QLdSbXF2xQ+6WgxjmsVydrjI JKVg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=L42pOiV3jLGMDXgIEOo6/CJMt+4vo0NwEJd2XSpLcUA=; b=wl3Rz/8v+RkRCoi9/MuDryUjSOaBDXZog9vSm1JGFFsVtWkTOzzm+kQRTrgWp4VbX9 lyWLrNevFxMmAR/+/NG/G7Weh2cOyhmeu7Ud8GG6XTDKbQWlEGtcG2iXMmGohym/Uypp dMcR1SOoRMWevcURHArL4mSjyWuwre8Jz7NqM4UuWkF77IvWCuSQBZGx9rNzjB1rtLuz iZ3EP89z3OsfiH2QwUXIWEnrotDYU1r2biazwffF3XAEIxL5JwkEzuTK66jw8CaKKX3a VcVscq9lG1eYqyCD37toFxv0UKwLpZah2bPNa4RlCFsFSnKnqZBSDO3rY1wJKCeq24nz szxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=lzqQa7kx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=android.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v13si2192686otq.129.2020.03.10.06.13.10; Tue, 10 Mar 2020 06:13:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=lzqQa7kx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=android.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731596AbgCJNMj (ORCPT + 99 others); Tue, 10 Mar 2020 09:12:39 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:37547 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731579AbgCJNMh (ORCPT ); Tue, 10 Mar 2020 09:12:37 -0400 Received: by mail-wm1-f65.google.com with SMTP id a141so1295026wme.2 for ; Tue, 10 Mar 2020 06:12:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=L42pOiV3jLGMDXgIEOo6/CJMt+4vo0NwEJd2XSpLcUA=; b=lzqQa7kxFDW37mdZURAt89yck5+OARsY2LdJSCdEsu5+xXa2Xbg17kXA5EGl5kb6wm PoFYlOQwGj3O2Ri+uO7PsFU99oR0jJVyijlGShvxiXmgpyHzoGFJ73ZHmSiNiU+MPjbC gEru521iogeffswdTziIksfdFbyi0mWY/Qh2Hy54Y9u2rlNhcczLUQifXm6G/EThoTDK Dv2AgEUBTIbKOvZ5lgGh1IjYuUYLh/8rROg0jxiBHq0ZTXpF9CMd5EDPUVc7mA5oZrG0 zMo2h48yZBvk0RnqcQHIbFGx+fU/HH2LjJNugadXuSchjJRKGFa3FBlKx8Vo9Rd8Pcgw XA9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=L42pOiV3jLGMDXgIEOo6/CJMt+4vo0NwEJd2XSpLcUA=; b=j0i3JQRTCfD9IOFf5dONQyM99C+xhwvZdo0bVWxCZTtGFOTWCH37rhZSCSah5pZaja rory2CGyEs1GzG18V/XDsehgC9q3XX2cf+X9gkL+JGc4wWd5mkYfMtFGFfMGwKsid3aR w+CRDHixD6ZcvYJYHNekrvJvQ8UFFVDz2a8P0BcL37BkDnrqZe7Dtl48B5SlBCMlx/x2 atoL8vldp7VLik2ZhO2+ePuWE8he+Vmfz6XfLahJ/zmfs9gwj9cC5dHgzLJuSpZDSa8b ZTY5un0yE22vDjqwqv6MSx+GNR54jSNi6K78X5Q23au+Bat2jBm2y3uHk6tnLP5LL/pI tgjA== X-Gm-Message-State: ANhLgQ27SZlaDHywBptNMAk8EI4qX+O4fNtV+rJKI5sa/bYcTqElj4LQ huAFE9XGnJOlNdD0D+XNxg/CwFoaYvM= X-Received: by 2002:a7b:c7cd:: with SMTP id z13mr2034890wmk.97.1583845954319; Tue, 10 Mar 2020 06:12:34 -0700 (PDT) Received: from maco2.ams.corp.google.com (a83-162-234-235.adsl.xs4all.nl. [83.162.234.235]) by smtp.gmail.com with ESMTPSA id x5sm3658447wrv.67.2020.03.10.06.12.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2020 06:12:33 -0700 (PDT) From: Martijn Coenen To: axboe@kernel.dk, hch@lst.de Cc: bvanassche@acm.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com, Martijn Coenen Subject: [PATCH] loop: Only change blocksize when needed. Date: Tue, 10 Mar 2020 14:12:30 +0100 Message-Id: <20200310131230.106427-1-maco@android.com> X-Mailer: git-send-email 2.25.1.481.gfbce0eb801-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return early in loop_set_block_size() if the requested block size is identical to the one we already have; this avoids expensive calls to freeze the block queue. Signed-off-by: Martijn Coenen --- drivers/block/loop.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index c1c844ad6b1a..a42c49e04954 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -1541,16 +1541,16 @@ static int loop_set_block_size(struct loop_device *lo, unsigned long arg) if (arg < 512 || arg > PAGE_SIZE || !is_power_of_2(arg)) return -EINVAL; - if (lo->lo_queue->limits.logical_block_size != arg) { - sync_blockdev(lo->lo_device); - kill_bdev(lo->lo_device); - } + if (lo->lo_queue->limits.logical_block_size == arg) + return 0; + + sync_blockdev(lo->lo_device); + kill_bdev(lo->lo_device); blk_mq_freeze_queue(lo->lo_queue); /* kill_bdev should have truncated all the pages */ - if (lo->lo_queue->limits.logical_block_size != arg && - lo->lo_device->bd_inode->i_mapping->nrpages) { + if (lo->lo_device->bd_inode->i_mapping->nrpages) { err = -EAGAIN; pr_warn("%s: loop%d (%s) has still dirty pages (nrpages=%lu)\n", __func__, lo->lo_number, lo->lo_file_name, -- 2.25.1.481.gfbce0eb801-goog