All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Christoph Hellwig <hch@infradead.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 11:45:42 +0000	[thread overview]
Message-ID: <20200429114542.GJ11244@42.do-not-panic.com> (raw)
In-Reply-To: <20200429112637.GD21892@infradead.org>

On Wed, Apr 29, 2020 at 04:26:37AM -0700, Christoph Hellwig wrote:
> 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.

We don't export blk_debugfs_root, didn't think we'd want to, and
since only a few scew funky drivers would use the struct gendisk
and also support BLKTRACE, I didn't think we'd want to export it
now.

A new block private symbol namespace alright?

> > +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?

True, not needed for partition.

> > +#ifdef CONFIG_DEBUG_FS
> > +	/* Currently only used by kernel/trace/blktrace.c */
> > +	struct dentry *debugfs_dir;
> > +#endif
> 
> Does that comment really add value?

I'll nuke it.

> > +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.

Ah neat.

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

Still think it helps with making this patch easier to read, but I don't
care, lemme know if I should just fold it.

> > @@ -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.

Will nuke.

  Luis

  reply	other threads:[~2020-04-29 11:45 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
2020-04-29 11:45     ` Luis Chamberlain [this message]
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=20200429114542.GJ11244@42.do-not-panic.com \
    --to=mcgrof@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hare@suse.com \
    --cc=hch@infradead.org \
    --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=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.