All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: axboe@kernel.dk, viro@zeniv.linux.org.uk, bvanassche@acm.org,
	gregkh@linuxfoundation.org, rostedt@goodmis.org,
	mingo@redhat.com, jack@suse.cz, ming.lei@redhat.com,
	nstange@suse.de, akpm@linux-foundation.org, mhocko@suse.com,
	yukuai3@huawei.com, linux-block@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, Omar Sandoval <osandov@fb.com>,
	Hannes Reinecke <hare@suse.com>, Michal Hocko <mhocko@kernel.org>,
	syzbot+603294af2d01acfdd6da@syzkaller.appspotmail.com
Subject: Re: [PATCH v3 4/6] blktrace: fix debugfs use after free
Date: Wed, 29 Apr 2020 04:26:37 -0700	[thread overview]
Message-ID: <20200429112637.GD21892@infradead.org> (raw)
In-Reply-To: <20200429074627.5955-5-mcgrof@kernel.org>

I can't say I'm a fan of all these long backtraces in commit logs..

> +static struct dentry *blk_debugfs_dir_register(const char *name)
> +{
> +	return debugfs_create_dir(name, blk_debugfs_root);
> +}

I don't think we really need this helper.

> +void blk_part_debugfs_unregister(struct hd_struct *p)
> +{
> +	debugfs_remove_recursive(p->debugfs_dir);
> +	p->debugfs_dir = NULL;
> +}

Why do we need to clear the pointer here?

> +#ifdef CONFIG_DEBUG_FS
> +	/* Currently only used by kernel/trace/blktrace.c */
> +	struct dentry *debugfs_dir;
> +#endif

Does that comment really add value?

> +static struct dentry *blk_trace_debugfs_dir(struct block_device *bdev,
> +					    struct request_queue *q)
>  {
> +	struct hd_struct *p = NULL;
>  
> +	 * Some drivers like scsi-generic use a NULL block device. For
> +	 * other drivers when bdev != bdev->bd_contain we are doing a blktrace
> +	 * on a parition, otherwise we know we are working on the whole
> +	 * disk, and for that the request_queue already has its own debugfs_dir.
> +	 * which we have been using for other things other than blktrace.
> +	 */
> +	if (bdev && bdev != bdev->bd_contains)
> +		p = bdev->bd_part;
>  
> +	if (p)
> +		return p->debugfs_dir;
> +
> +	return q->debugfs_dir;

This could be simplified down to:

	if (bdev && bdev != bdev->bd_contains)
		return bdev->bd_part->debugfs_dir;
	return q->debugfs_dir;

Given that bd_part is in __blkdev_get very near bd_contains.

Also given that this patch completely rewrites blk_trace_debugfs_dir is
there any point in the previous patch?

> @@ -491,6 +500,7 @@ static int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
>  	struct dentry *dir = NULL;
>  	int ret;
>  
> +
>  	if (!buts->buf_size || !buts->buf_nr)
>  		return -EINVAL;
>  

Spurious whitespace change.

  parent reply	other threads:[~2020-04-29 11:27 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-29  7:46 [PATCH v3 0/6] block: fix blktrace debugfs use after free Luis Chamberlain
2020-04-29  7:46 ` [PATCH v3 1/6] block: revert back to synchronous request_queue removal Luis Chamberlain
2020-04-29 11:15   ` Christoph Hellwig
2020-05-02  0:22   ` Bart Van Assche
2020-05-03 10:32     ` Matthew Wilcox
2020-05-04 16:18       ` Luis Chamberlain
2020-05-04 16:16     ` Luis Chamberlain
2020-04-29  7:46 ` [PATCH v3 2/6] block: move main block debugfs initialization to its own file Luis Chamberlain
2020-04-29 11:15   ` Christoph Hellwig
2020-04-29  7:46 ` [PATCH v3 3/6] blktrace: move blktrace debugfs creation to helper function Luis Chamberlain
2020-04-29 11:20   ` Christoph Hellwig
2020-05-02  0:25   ` Bart Van Assche
2020-04-29  7:46 ` [PATCH v3 4/6] blktrace: fix debugfs use after free Luis Chamberlain
2020-04-29  9:47   ` Greg KH
2020-04-29 11:26   ` Christoph Hellwig [this message]
2020-04-29 11:45     ` Luis Chamberlain
2020-04-29 11:50       ` Christoph Hellwig
2020-04-29 12:02         ` Luis Chamberlain
2020-04-29 12:04           ` Christoph Hellwig
2020-04-29 12:21             ` Luis Chamberlain
2020-04-29 12:57               ` Greg KH
2020-05-01 15:24                 ` Luis Chamberlain
2020-05-07 11:30   ` [blktrace] d106a3fdba: BUG:kernel_NULL_pointer_dereference,address kernel test robot
2020-05-07 11:30     ` [blktrace] d106a3fdba: BUG:kernel_NULL_pointer_dereference, address kernel test robot
2020-04-29  7:46 ` [PATCH v3 5/6] blktrace: break out of blktrace setup on concurrent calls Luis Chamberlain
2020-04-29  9:49   ` Greg KH
2020-05-01 15:06     ` Luis Chamberlain
2020-05-01 15:34       ` Christoph Hellwig
2020-05-01 15:40         ` Luis Chamberlain
2020-05-01 15:50           ` Luis Chamberlain
2020-05-01 15:50             ` Luis Chamberlain
2020-05-01 16:51       ` Greg KH
2020-04-29  7:46 ` [PATCH v3 6/6] loop: be paranoid on exit and prevent new additions / removals Luis Chamberlain
2020-04-29  9:50   ` Greg KH
2020-05-03  9:09     ` Luis Chamberlain
2020-04-29 14:05   ` Ming Lei
2020-04-29  8:48 [PATCH v3 4/6] blktrace: fix debugfs use after free Markus Elfring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200429112637.GD21892@infradead.org \
    --to=hch@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hare@suse.com \
    --cc=jack@suse.cz \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mcgrof@kernel.org \
    --cc=mhocko@kernel.org \
    --cc=mhocko@suse.com \
    --cc=ming.lei@redhat.com \
    --cc=mingo@redhat.com \
    --cc=nstange@suse.de \
    --cc=osandov@fb.com \
    --cc=rostedt@goodmis.org \
    --cc=syzbot+603294af2d01acfdd6da@syzkaller.appspotmail.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=yukuai3@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.