From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E21D1C56202 for ; Thu, 26 Nov 2020 16:50:58 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4B505221EB for ; Thu, 26 Nov 2020 16:50:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4B505221EB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=dm-devel-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-429-MqZqDz3fND6ESD7JVeg_RQ-1; Thu, 26 Nov 2020 11:50:54 -0500 X-MC-Unique: MqZqDz3fND6ESD7JVeg_RQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9ABEC107AFA8; Thu, 26 Nov 2020 16:50:49 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7C2B063BA7; Thu, 26 Nov 2020 16:50:49 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id EDFE64BB7B; Thu, 26 Nov 2020 16:50:48 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 0AQGoj1c026828 for ; Thu, 26 Nov 2020 11:50:45 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7A6802026D38; Thu, 26 Nov 2020 16:50:45 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 752F62026D47 for ; Thu, 26 Nov 2020 16:50:41 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 430F2858295 for ; Thu, 26 Nov 2020 16:50:41 +0000 (UTC) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-202-BGUIUouYMb2HmHvjAmQpGw-1; Thu, 26 Nov 2020 11:50:38 -0500 X-MC-Unique: BGUIUouYMb2HmHvjAmQpGw-1 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 3C2ECACE0; Thu, 26 Nov 2020 16:50:37 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id BAA6A1E10D0; Thu, 26 Nov 2020 17:50:36 +0100 (CET) Date: Thu, 26 Nov 2020 17:50:36 +0100 From: Jan Kara To: Christoph Hellwig Message-ID: <20201126165036.GO422@quack2.suse.cz> References: <20201126130422.92945-1-hch@lst.de> <20201126130422.92945-30-hch@lst.de> MIME-Version: 1.0 In-Reply-To: <20201126130422.92945-30-hch@lst.de> User-Agent: Mutt/1.10.1 (2018-07-13) X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: dm-devel@redhat.com Cc: Jens Axboe , Chao Yu , Jan Kara , Mike Snitzer , linux-mm@kvack.org, Greg Kroah-Hartman , Jan Kara , Josef Bacik , Coly Li , linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, dm-devel@redhat.com, linux-mtd@lists.infradead.org, Johannes Thumshirn , Tejun Heo , linux-bcache@vger.kernel.org Subject: Re: [dm-devel] [PATCH 29/44] block: remove the nr_sects field in struct hd_struct X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dm-devel-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Thu 26-11-20 14:04:07, Christoph Hellwig wrote: > Now that the hd_struct always has a block device attached to it, there is > no need for having two size field that just get out of sync. > > Additional the field in hd_struct did not use proper serializiation, ^^ Additionaly ^^^ serialization > possibly allowing for torn writes. By only using the block_device field > this problem also gets fixed. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Greg Kroah-Hartman > Acked-by: Coly Li [bcache] > Acked-by: Chao Yu [f2fs] Nice, just two nits below. > @@ -47,18 +57,22 @@ static void disk_release_events(struct gendisk *disk); > bool set_capacity_and_notify(struct gendisk *disk, sector_t size) > { > sector_t capacity = get_capacity(disk); > + char *envp[] = { "RESIZE=1", NULL }; > > set_capacity(disk, size); > - revalidate_disk_size(disk, true); > - > - if (capacity != size && capacity != 0 && size != 0) { > - char *envp[] = { "RESIZE=1", NULL }; > - > - kobject_uevent_env(&disk_to_dev(disk)->kobj, KOBJ_CHANGE, envp); > - return true; > - } > > - return false; > + /* > + * Only print a message and send a uevent if the gendisk is user visible > + * and alive. This avoids spamming the log and udev when setting the > + * initial capacity during probing. > + */ > + if (size == capacity || > + (disk->flags & (GENHD_FL_UP | GENHD_FL_HIDDEN)) != GENHD_FL_UP) > + return false; > + pr_info("%s: detected capacity change from %lld to %lld\n", > + disk->disk_name, size, capacity); > + kobject_uevent_env(&disk_to_dev(disk)->kobj, KOBJ_CHANGE, envp); I think we don't want to generate resize event for changes from / to 0... Also the return value of this function is now different. > diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c > index 4e37fa9b409d52..a70c33c49f0960 100644 > --- a/drivers/target/target_core_pscsi.c > +++ b/drivers/target/target_core_pscsi.c > @@ -1027,12 +1027,7 @@ static u32 pscsi_get_device_type(struct se_device *dev) > > static sector_t pscsi_get_blocks(struct se_device *dev) > { > - struct pscsi_dev_virt *pdv = PSCSI_DEV(dev); > - > - if (pdv->pdv_bd && pdv->pdv_bd->bd_part) > - return pdv->pdv_bd->bd_part->nr_sects; > - > - return 0; > + return bdev_nr_sectors(PSCSI_DEV(dev)->pdv_bd); I pdv_bd guaranteed to be non-NULL in pscsi_dev_virt? Honza -- Jan Kara SUSE Labs, CR -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel