From patchwork Thu Jun 8 02:41:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yu Kuai X-Patchwork-Id: 104810 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10262vqr; Wed, 7 Jun 2023 20:11:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6+5NwVD7r5l/eJ915qE6jxPmVf2dubTAzhb+aVi5eRXHQYoQ31a6WgeB+Hca+FTOjpWILh X-Received: by 2002:a17:90a:191a:b0:255:949b:b50d with SMTP id 26-20020a17090a191a00b00255949bb50dmr4549336pjg.4.1686193881709; Wed, 07 Jun 2023 20:11:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686193881; cv=none; d=google.com; s=arc-20160816; b=FXlngwflg6jdSe8Hvun75raHZFivIuIQAkXk2etBXCTMwCceV7eKUJqoFPGJUonhUJ PhA80lVmh9N/2YSDid0m1gJ45ZSmh5xKK971Goo0dGYGVL4yX4jG0AVhWIpvrCZVTxAJ tSFF6sAo8tD73JozZE3eqqXvhCJ9BdK729cRa0Nmdg26JwaXhzcT9+9jnPospIOkxPp6 i6K/+AA7E4mM/PXLE2pTUj0WgB73iZOyIB1evkH2rzIS5g2PoOjqNFdqjX+Kvq4bbTtG Cev4LIu8Skh7Iudjvr9b/5saM4xG6PCR/7oAu3VSqinE9CiZ0/65LyNhCoPmSREUHMnV 3epg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=c5+bsc+5tuWYnng2VkaR0wWEp3eTqZTsqEBQU4QEx6c=; b=CUiXHJej0Wiy59ihZtoWAHWBpU2i8gjq84+aUeRhuLtj9FOVv222J1EuuXHKYdacid P5Oag9SBIBoUA+Nzgms1P2AzXcySr/3w7Zd9ihfv1S9/sYl1ngn6lx7R+ZJ9lIMQT6p1 ekaBj41IezDWI9/Wr922TW/fJXwI1lDLWfjvALHURLsf5nb1b8L0JF/rf5UdovepqY34 PVoLUye8bmunxAsO6ZrqSnApKGlRbsivb+KDsPl/EPy8SAid/Ake4l9ypJ1kY454TxAs KpxiqJ5KusalbxL7iskWVvVQ5foKpxOw7LT3SzMYy1dkPlSLxqRoaa4/jEYQfqhWRDBT m/Iw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y2-20020a17090a644200b0024e5ed38294si342554pjm.66.2023.06.07.20.11.09; Wed, 07 Jun 2023 20:11:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233689AbjFHCqS (ORCPT + 99 others); Wed, 7 Jun 2023 22:46:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48384 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233679AbjFHCqP (ORCPT ); Wed, 7 Jun 2023 22:46:15 -0400 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B9C3210C; Wed, 7 Jun 2023 19:46:13 -0700 (PDT) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Qc7rK1lSCz4f3l7V; Thu, 8 Jun 2023 10:46:09 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.104.67]) by APP4 (Coremail) with SMTP id gCh0CgD3rLDwQIFkn13HLA--.37355S5; Thu, 08 Jun 2023 10:46:10 +0800 (CST) From: Yu Kuai To: hch@lst.de, axboe@kernel.dk, dgilbert@interlog.com, jejb@linux.ibm.com, martin.petersen@oracle.com Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, yukuai3@huawei.com, yukuai1@huaweicloud.com, yi.zhang@huawei.com, yangerkun@huawei.com Subject: [PATCH v3 1/2] scsi: sg: fix blktrace debugfs entries leakage Date: Thu, 8 Jun 2023 10:41:58 +0800 Message-Id: <20230608024159.1282953-2-yukuai1@huaweicloud.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230608024159.1282953-1-yukuai1@huaweicloud.com> References: <20230608024159.1282953-1-yukuai1@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgD3rLDwQIFkn13HLA--.37355S5 X-Coremail-Antispam: 1UD129KBjvJXoW7Kry3Zr4kJrWxuFyxtr4ruFg_yoW8Ww4kpF WxXa90krWUWr4UGw1DZw1UZF1fCay09395GFW2gwn3WF4rJr90gF95tFyaqa45ArZ5uFZ8 GFW5KF95WFnrJaUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBE14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jr4l82xGYIkIc2 x26xkF7I0E14v26r4j6ryUM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0 Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS 0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2 IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0 Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2 xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2 6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2 Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_ Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMI IF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x0JU4T5dUUUUU = X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, MAY_BE_FORGED,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768102436102976121?= X-GMAIL-MSGID: =?utf-8?q?1768102436102976121?= From: Yu Kuai sg_ioctl() support to enable blktrace, which will create debugfs entries "/sys/kernel/debug/block/sgx/", however, there is no guarantee that user will remove these entries through ioctl, and deleting sg device doesn't cleanup these blktrace entries. This problem can be fixed by cleanup blktrace while releasing request_queue, however, it's not a good idea to do this special handling in common layer just for sg device. Fix this problem by shutdown bltkrace in sg_device_destroy(), where the device is deleted and all the users close the device, also grab a scsi_device reference from sg_add_device() to prevent scsi_device to be freed before sg_device_destroy(); Signed-off-by: Yu Kuai Reviewed-by: Christoph Hellwig --- drivers/scsi/sg.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 037f8c98a6d3..ed4e2f9b3d64 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -1496,6 +1496,10 @@ sg_add_device(struct device *cl_dev) int error; unsigned long iflags; + error = scsi_device_get(scsidp); + if (error) + return error; + error = -ENOMEM; cdev = cdev_alloc(); if (!cdev) { @@ -1553,6 +1557,7 @@ sg_add_device(struct device *cl_dev) out: if (cdev) cdev_del(cdev); + scsi_device_put(scsidp); return error; } @@ -1567,6 +1572,9 @@ sg_device_destroy(struct kref *kref) * any other cleanup. */ + blk_trace_remove(sdp->device->request_queue); + scsi_device_put(sdp->device); + write_lock_irqsave(&sg_index_lock, flags); idr_remove(&sg_index_idr, sdp->index); write_unlock_irqrestore(&sg_index_lock, flags);