diff mbox series

blkdev: make struct block_device_operations.devnode() take a const *

Message ID 20221109144843.679668-1-gregkh@linuxfoundation.org (mailing list archive)
State New, archived
Headers show
Series blkdev: make struct block_device_operations.devnode() take a const * | expand

Commit Message

Greg Kroah-Hartman Nov. 9, 2022, 2:48 p.m. UTC
The devnode() callback in struct block_device_operations should not be
modifying the device that is passed into it, so mark it as a const * and
propagate the function signature changes out into the one subsystem that
actually uses this callback.

Cc: linux-block@vger.kernel.org
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---

Jens, I have some dependent kobject/driver core changes that require
this change in the works.  Can I take this through the driver core tree
for 6.2-rc1?

 drivers/block/pktcdvd.c | 2 +-
 include/linux/blkdev.h  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Jens Axboe Nov. 9, 2022, 7:41 p.m. UTC | #1
On 11/9/22 7:48 AM, Greg Kroah-Hartman wrote:
> The devnode() callback in struct block_device_operations should not be
> modifying the device that is passed into it, so mark it as a const * and
> propagate the function signature changes out into the one subsystem that
> actually uses this callback.
> 
> Cc: linux-block@vger.kernel.org
> Cc: Jens Axboe <axboe@kernel.dk>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> 
> Jens, I have some dependent kobject/driver core changes that require
> this change in the works.  Can I take this through the driver core tree
> for 6.2-rc1?

Yeah go ahead, you can add my:

Acked-by: Jens Axboe <axboe@kernel.dk>
Greg Kroah-Hartman Nov. 10, 2022, 5:23 p.m. UTC | #2
On Wed, Nov 09, 2022 at 12:41:09PM -0700, Jens Axboe wrote:
> On 11/9/22 7:48 AM, Greg Kroah-Hartman wrote:
> > The devnode() callback in struct block_device_operations should not be
> > modifying the device that is passed into it, so mark it as a const * and
> > propagate the function signature changes out into the one subsystem that
> > actually uses this callback.
> > 
> > Cc: linux-block@vger.kernel.org
> > Cc: Jens Axboe <axboe@kernel.dk>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> > 
> > Jens, I have some dependent kobject/driver core changes that require
> > this change in the works.  Can I take this through the driver core tree
> > for 6.2-rc1?
> 
> Yeah go ahead, you can add my:
> 
> Acked-by: Jens Axboe <axboe@kernel.dk>

Thanks!
Christoph Hellwig Nov. 15, 2022, 9:13 a.m. UTC | #3
On Wed, Nov 09, 2022 at 03:48:43PM +0100, Greg Kroah-Hartman wrote:
> The devnode() callback in struct block_device_operations should not be
> modifying the device that is passed into it, so mark it as a const * and
> propagate the function signature changes out into the one subsystem that
> actually uses this callback.

Yes.  In fact it really shouldn't exist at all.  I wonder if we can
do another attempt at dropping pktcdvd?
Greg Kroah-Hartman Nov. 15, 2022, 10:30 a.m. UTC | #4
On Tue, Nov 15, 2022 at 01:13:07AM -0800, Christoph Hellwig wrote:
> On Wed, Nov 09, 2022 at 03:48:43PM +0100, Greg Kroah-Hartman wrote:
> > The devnode() callback in struct block_device_operations should not be
> > modifying the device that is passed into it, so mark it as a const * and
> > propagate the function signature changes out into the one subsystem that
> > actually uses this callback.
> 
> Yes.  In fact it really shouldn't exist at all.  I wonder if we can
> do another attempt at dropping pktcdvd?

I'll gladly send a patch to delete it.  Who objected last time?  Let me
dig in the archives...
Greg Kroah-Hartman Dec. 2, 2022, 6:28 p.m. UTC | #5
On Tue, Nov 15, 2022 at 01:13:07AM -0800, Christoph Hellwig wrote:
> On Wed, Nov 09, 2022 at 03:48:43PM +0100, Greg Kroah-Hartman wrote:
> > The devnode() callback in struct block_device_operations should not be
> > modifying the device that is passed into it, so mark it as a const * and
> > propagate the function signature changes out into the one subsystem that
> > actually uses this callback.
> 
> Yes.  In fact it really shouldn't exist at all.  I wonder if we can
> do another attempt at dropping pktcdvd?
> 

Patch removing it now sent.
diff mbox series

Patch

diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 4cea3b08087e..8dc15be95962 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -2632,7 +2632,7 @@  static unsigned int pkt_check_events(struct gendisk *disk,
 	return attached_disk->fops->check_events(attached_disk, clearing);
 }
 
-static char *pkt_devnode(struct gendisk *disk, umode_t *mode)
+static char *pkt_devnode(const struct gendisk *disk, umode_t *mode)
 {
 	return kasprintf(GFP_KERNEL, "pktcdvd/%s", disk->disk_name);
 }
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 50e358a19d98..2a455793462b 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1413,7 +1413,7 @@  struct block_device_operations {
 	void (*swap_slot_free_notify) (struct block_device *, unsigned long);
 	int (*report_zones)(struct gendisk *, sector_t sector,
 			unsigned int nr_zones, report_zones_cb cb, void *data);
-	char *(*devnode)(struct gendisk *disk, umode_t *mode);
+	char *(*devnode)(const struct gendisk *disk, umode_t *mode);
 	/* returns the length of the identifier or a negative errno: */
 	int (*get_unique_id)(struct gendisk *disk, u8 id[16],
 			enum blk_unique_id id_type);