Re: [PATCH v2] uml: Replace strlcpy with strscpy

2023-06-06 Thread Eric Biggers
On Tue, Jun 06, 2023 at 05:08:27PM -0400, Azeem Shaikh wrote: > On Tue, Jun 6, 2023 at 4:51 PM Richard Weinberger wrote: > > > > - Ursprüngliche Mail - > > > Von: "Azeem Shaikh" > > > strlcpy() reads the entire source buffer first. > > > This read may exceed the destination size limit. >

Re: [PATCH 06/31] cdrom: remove the unused mode argument to cdrom_release

2023-06-06 Thread Phillip Potter
On Tue, Jun 06, 2023 at 09:39:25AM +0200, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig > --- > drivers/cdrom/cdrom.c | 2 +- > drivers/cdrom/gdrom.c | 2 +- > drivers/scsi/sr.c | 2 +- > include/linux/cdrom.h | 2 +- > 4 files changed, 4 insertions(+), 4 deletions(-) > > diff

Re: [PATCH 05/31] cdrom: track if a cdrom_device_info was opened for data

2023-06-06 Thread Phillip Potter
On Tue, Jun 06, 2023 at 09:39:24AM +0200, Christoph Hellwig wrote: > Set a flag when a cdrom_device_info is opened for writing, instead of > trying to figure out this at release time. This will allow to eventually > remove the mode argument to the ->release block_device_operation as > nothing but

Re: [PATCH 04/31] cdrom: remove the unused cdrom_close_write release code

2023-06-06 Thread Phillip Potter
On Tue, Jun 06, 2023 at 09:39:23AM +0200, Christoph Hellwig wrote: > cdrom_close_write is empty, and the for_data flag it is keyed off is > never set. Remove all this clutter. > > Signed-off-by: Christoph Hellwig > --- > drivers/cdrom/cdrom.c | 15 --- > include/linux/cdrom.h | 1 -

Re: [PATCH 03/31] cdrom: remove the unused mode argument to cdrom_ioctl

2023-06-06 Thread Phillip Potter
On Tue, Jun 06, 2023 at 09:39:22AM +0200, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig > --- > drivers/cdrom/cdrom.c | 2 +- > drivers/cdrom/gdrom.c | 2 +- > drivers/scsi/sr.c | 2 +- > include/linux/cdrom.h | 4 ++-- > 4 files changed, 5 insertions(+), 5 deletions(-) > > dif

Re: [PATCH 02/31] cdrom: remove the unused bdev argument to cdrom_open

2023-06-06 Thread Phillip Potter
On Tue, Jun 06, 2023 at 09:39:21AM +0200, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig > --- > drivers/cdrom/cdrom.c | 3 +-- > drivers/cdrom/gdrom.c | 2 +- > drivers/scsi/sr.c | 2 +- > include/linux/cdrom.h | 3 +-- > 4 files changed, 4 insertions(+), 6 deletions(-) > > dif

Re: [PATCH v2] uml: Replace strlcpy with strscpy

2023-06-06 Thread Azeem Shaikh
On Tue, Jun 6, 2023 at 4:51 PM Richard Weinberger wrote: > > - Ursprüngliche Mail - > > Von: "Azeem Shaikh" > > strlcpy() reads the entire source buffer first. > > This read may exceed the destination size limit. > > This is both inefficient and can lead to linear read > > overflows if a

Re: [PATCH v2] uml: Replace strlcpy with strscpy

2023-06-06 Thread Richard Weinberger
- Ursprüngliche Mail - > Von: "Azeem Shaikh" > strlcpy() reads the entire source buffer first. > This read may exceed the destination size limit. > This is both inefficient and can lead to linear read > overflows if a source string is not NUL-terminated [1]. > In an effort to remove strlcp

[PATCH v2] uml: Replace strlcpy with strscpy

2023-06-06 Thread Azeem Shaikh
strlcpy() reads the entire source buffer first. This read may exceed the destination size limit. This is both inefficient and can lead to linear read overflows if a source string is not NUL-terminated [1]. In an effort to remove strlcpy() completely [2], replace strlcpy() here with strscpy(). No re

[PATCH 31/31] fs: remove the now unused FMODE_* flags

2023-06-06 Thread Christoph Hellwig
FMODE_NDELAY, FMODE_EXCL and FMODE_WRITE_IOCTL were only used for block internal purposed and are now entirely unused, so remove them. Signed-off-by: Christoph Hellwig --- include/linux/fs.h | 7 --- 1 file changed, 7 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index a

[PATCH 30/31] block: store the holder in file->private_data

2023-06-06 Thread Christoph Hellwig
Store the file struct used as the holder in file->private_data as an indicator that this file descriptor was opened exclusively to remove the last use of FMODE_EXCL. Signed-off-by: Christoph Hellwig --- block/fops.c | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --gi

[PATCH 10/31] block: remove the unused mode argument to ->release

2023-06-06 Thread Christoph Hellwig
The mode argument to the ->release block_device_operation is never used, so remove it. Signed-off-by: Christoph Hellwig --- arch/um/drivers/ubd_kern.c | 4 ++-- arch/xtensa/platforms/iss/simdisk.c | 2 +- block/bdev.c| 14 +++--- drivers/block/amiflop.c

[PATCH 17/31] block: add a sb_open_mode helper

2023-06-06 Thread Christoph Hellwig
Add a helper to return the open flags for blkdev_get_by* for passed in super block flags instead of open coding the logic in many places. Signed-off-by: Christoph Hellwig --- fs/btrfs/super.c | 5 + fs/nilfs2/super.c | 7 ++- fs/super.c | 15 --- incl

[PATCH 18/31] fs: remove sb->s_mode

2023-06-06 Thread Christoph Hellwig
There is no real need to store the open mode in the super_block now. It is only used by f2fs, which can easily recalculate it. Signed-off-by: Christoph Hellwig --- fs/f2fs/super.c| 10 ++ fs/nilfs2/super.c | 1 - fs/super.c | 2 -- include/linux/fs.h | 1 - 4 files change

[PATCH 16/31] block: use the holder as indication for exclusive opens

2023-06-06 Thread Christoph Hellwig
The current interface for exclusive opens is rather confusing as it requires both the FMODE_EXCL flag and a holder. Remove the need to pass FMODE_EXCL and just key off the exclusive open off a non-NULL holder. For blkdev_put this requires adding the holder argument, which provides better debug ch

[PATCH 12/31] swsusp: don't pass a stack address to blkdev_get_by_path

2023-06-06 Thread Christoph Hellwig
holder is just an on-stack pointer that can easily be reused by other calls, replace it with a static variable that doesn't change. Signed-off-by: Christoph Hellwig --- kernel/power/swap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/power/swap.c b/kernel/power

Re: decouple block open flags from fmode_t

2023-06-06 Thread Christoph Hellwig
On Tue, Jun 06, 2023 at 10:27:14AM +0200, Christian Brauner wrote: > On Tue, Jun 06, 2023 at 09:39:19AM +0200, Christoph Hellwig wrote: > > Hi all, > > > > this series adds a new blk_mode_t for block open flags instead of abusing > > Trying to look at this series applied but doesn't apply cleanly

Re: decouple block open flags from fmode_t

2023-06-06 Thread Christian Brauner
On Tue, Jun 06, 2023 at 09:39:19AM +0200, Christoph Hellwig wrote: > Hi all, > > this series adds a new blk_mode_t for block open flags instead of abusing Trying to look at this series applied but doesn't apply cleanly for anything v6.4-rc* related. What tree is this on?

Re: [PATCH 23/31] mtd: block: use a simple bool to track open for write

2023-06-06 Thread Richard Weinberger
- Ursprüngliche Mail - > Von: "hch" > Instead of propagating the fmode_t, just use a bool to track if a mtd > block device was opened for writing. > > Signed-off-by: Christoph Hellwig > --- > drivers/mtd/mtd_blkdevs.c| 2 +- > drivers/mtd/mtdblock.c | 2 +- > include/linux/mtd/bl

Re: [PATCH 25/31] ubd: remove commented out code in ubd_open

2023-06-06 Thread Richard Weinberger
- Ursprüngliche Mail - > Von: "hch" > This code has been dead forever, make sure it doesn't show up in code > searches. > > Signed-off-by: Christoph Hellwig > --- > arch/um/drivers/ubd_kern.c | 7 --- > 1 file changed, 7 deletions(-) > > diff --git a/arch/um/drivers/ubd_kern.c b/arch

[PATCH 29/31] block: always use I_BDEV on file->f_mapping->host to find the bdev

2023-06-06 Thread Christoph Hellwig
Always use I_BDEV(file->f_mapping->host) to find the bdev for a file to free up file->private_data for other uses. Signed-off-by: Christoph Hellwig --- block/fops.c | 18 -- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/block/fops.c b/block/fops.c index 928c37a21

[PATCH 28/31] block: replace fmode_t with a block-specific type for block open flags

2023-06-06 Thread Christoph Hellwig
The only overlap between the block open flags mapped into the fmode_t and other uses of fmode_t are FMODE_READ and FMODE_WRITE. Define a new blk_mode_t instead for use in blkdev_get_by_*, ->open and ->ioctl and stop abusing fmode_t. Signed-off-by: Christoph Hellwig --- arch/um/drivers/ubd_kern.

[PATCH 27/31] block: remove unused fmode_t arguments from ioctl handlers

2023-06-06 Thread Christoph Hellwig
A few ioctl handlers have fmode_t arguments that are entirely unused, remove them. Signed-off-by: Christoph Hellwig --- block/blk-zoned.c | 4 ++-- block/blk.h | 6 +++--- block/ioctl.c | 14 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/block/blk-zo

[PATCH 25/31] ubd: remove commented out code in ubd_open

2023-06-06 Thread Christoph Hellwig
This code has been dead forever, make sure it doesn't show up in code searches. Signed-off-by: Christoph Hellwig --- arch/um/drivers/ubd_kern.c | 7 --- 1 file changed, 7 deletions(-) diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index 8b79554968addb..20c1a16199c503 1

[PATCH 24/31] rnbd-srv: replace sess->open_flags with a "bool readonly"

2023-06-06 Thread Christoph Hellwig
Stop passing the fmode_t around and just use a simple bool to track if an export is read-only. Signed-off-by: Christoph Hellwig --- drivers/block/rnbd/rnbd-srv-sysfs.c | 3 +-- drivers/block/rnbd/rnbd-srv.c | 15 +++ drivers/block/rnbd/rnbd-srv.h | 2 +- 3 files changed

[PATCH 26/31] block: move a few internal definitions out of blkdev.h

2023-06-06 Thread Christoph Hellwig
All these helpers are only used in core block code, so move them out of the public header. Signed-off-by: Christoph Hellwig --- block/blk.h| 23 +-- include/linux/blkdev.h | 27 --- 2 files changed, 21 insertions(+), 29 deletions(-) diff -

[PATCH 23/31] mtd: block: use a simple bool to track open for write

2023-06-06 Thread Christoph Hellwig
Instead of propagating the fmode_t, just use a bool to track if a mtd block device was opened for writing. Signed-off-by: Christoph Hellwig --- drivers/mtd/mtd_blkdevs.c| 2 +- drivers/mtd/mtdblock.c | 2 +- include/linux/mtd/blktrans.h | 2 +- 3 files changed, 3 insertions(+), 3 delet

[PATCH 22/31] nvme: replace the fmode_t argument to the nvme ioctl handlers with a simple bool

2023-06-06 Thread Christoph Hellwig
Instead of passing a fmode_t and only checking it fo0r FMODE_WRITE, pass a bool open_for_write to prepare for callers that won't have the fmode_t. Signed-off-by: Christoph Hellwig --- drivers/nvme/host/ioctl.c | 62 +-- 1 file changed, 34 insertions(+), 28 del

[PATCH 21/31] scsi: replace the fmode_t argument to ->sg_io_fn with a simple bool

2023-06-06 Thread Christoph Hellwig
Instead of passing a fmode_t and only checking it for FMODE_WRITE, pass a bool open_for_write to prepare for callers that won't have the fmode_t. Signed-off-by: Christoph Hellwig --- block/bsg-lib.c | 2 +- block/bsg.c | 8 +--- drivers/scsi/scsi_bsg.c | 4 ++-- include/l

[PATCH 20/31] scsi: replace the fmode_t argument to scsi_ioctl with a simple bool

2023-06-06 Thread Christoph Hellwig
Instead of passing a fmode_t and only checking it for FMODE_WRITE, pass a bool open_for_write to prepare for callers that won't have the fmode_t. Signed-off-by: Christoph Hellwig --- drivers/scsi/ch.c | 3 ++- drivers/scsi/scsi_ioctl.c | 34 +- drivers/sc

[PATCH 19/31] scsi: replace the fmode_t argument to scsi_cmd_allowed with a simple bool

2023-06-06 Thread Christoph Hellwig
Instead of passing a fmode_t and only checking it for FMODE_WRITE, pass a bool open_for_write to prepare for callers that won't have the fmode_t. Signed-off-by: Christoph Hellwig --- drivers/scsi/scsi_bsg.c | 2 +- drivers/scsi/scsi_ioctl.c | 8 drivers/scsi/sg.c | 2 +- inclu

[PATCH 15/31] btrfs: don't pass a holder for non-exclusive blkdev_get_by_path

2023-06-06 Thread Christoph Hellwig
Passing a holder to blkdev_get_by_path when FMODE_EXCL isn't set doesn't make sense, so pass NULL instead and remove the holder argument from the call chains the only end up in non-FMODE_EXCL blkdev_get_by_path calls. Signed-off-by: Christoph Hellwig --- fs/btrfs/super.c | 16 ++--

[PATCH 14/31] rnbd-srv: don't pass a holder for non-exclusive blkdev_get_by_path

2023-06-06 Thread Christoph Hellwig
Passing a holder to blkdev_get_by_path when FMODE_EXCL isn't set doesn't make sense, so pass NULL instead. Signed-off-by: Christoph Hellwig --- drivers/block/rnbd/rnbd-srv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnb

[PATCH 13/31] bcache: don't pass a stack address to blkdev_get_by_path

2023-06-06 Thread Christoph Hellwig
sb is just an on-stack pointer that can easily be reused by other calls. Switch to use the bcache-wide bcache_kobj instead as there is no need to claim per-bcache device anyway. Signed-off-by: Christoph Hellwig --- drivers/md/bcache/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

[PATCH 11/31] block: rename blkdev_close to blkdev_release

2023-06-06 Thread Christoph Hellwig
Make the function name match the method name. Signed-off-by: Christoph Hellwig --- block/fops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/fops.c b/block/fops.c index 6a3087b750a6cd..26af2b39c758e1 100644 --- a/block/fops.c +++ b/block/fops.c @@ -500,7 +500,7 @

[PATCH 09/31] block: pass a gendisk to ->open

2023-06-06 Thread Christoph Hellwig
->open is only called on the whole device. Make that explicit by passing a gendisk instead of the block_device. Signed-off-by: Christoph Hellwig --- arch/um/drivers/ubd_kern.c | 5 ++--- arch/xtensa/platforms/iss/simdisk.c | 4 ++-- block/bdev.c| 2 +- driver

[PATCH 08/31] block: share code between disk_check_media_change and disk_force_media_change

2023-06-06 Thread Christoph Hellwig
Factor the common logic between disk_check_media_change and disk_force_media_change into a helper. Signed-off-by: Christoph Hellwig --- block/disk-events.c | 37 - 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/block/disk-events.c b/block/disk

[PATCH 07/31] block: pass a gendisk on bdev_check_media_change

2023-06-06 Thread Christoph Hellwig
bdev_check_media_change should only ever be called for the whole device. Pass a gendisk to make that explicit and rename the function to disk_check_media_change. Signed-off-by: Christoph Hellwig --- block/disk-events.c | 18 +- drivers/block/amiflop.c | 2 +- drivers/block/a

[PATCH 06/31] cdrom: remove the unused mode argument to cdrom_release

2023-06-06 Thread Christoph Hellwig
Signed-off-by: Christoph Hellwig --- drivers/cdrom/cdrom.c | 2 +- drivers/cdrom/gdrom.c | 2 +- drivers/scsi/sr.c | 2 +- include/linux/cdrom.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index adebac1bd210d9..998b03fe9

[PATCH 05/31] cdrom: track if a cdrom_device_info was opened for data

2023-06-06 Thread Christoph Hellwig
Set a flag when a cdrom_device_info is opened for writing, instead of trying to figure out this at release time. This will allow to eventually remove the mode argument to the ->release block_device_operation as nothing but the CDROM drivers uses that argument. Signed-off-by: Christoph Hellwig --

[PATCH 04/31] cdrom: remove the unused cdrom_close_write release code

2023-06-06 Thread Christoph Hellwig
cdrom_close_write is empty, and the for_data flag it is keyed off is never set. Remove all this clutter. Signed-off-by: Christoph Hellwig --- drivers/cdrom/cdrom.c | 15 --- include/linux/cdrom.h | 1 - 2 files changed, 16 deletions(-) diff --git a/drivers/cdrom/cdrom.c b/drivers/

[PATCH 01/31] block: also call ->open for incremental partition opens

2023-06-06 Thread Christoph Hellwig
For whole devices ->open is called for each open, but for partitions it is only called on the first open of a partition. This is problematic as various block drivers look at open flags and might not do all setup for ioctl only or NDELAY opens. Signed-off-by: Christoph Hellwig --- block/bdev.c |

[PATCH 03/31] cdrom: remove the unused mode argument to cdrom_ioctl

2023-06-06 Thread Christoph Hellwig
Signed-off-by: Christoph Hellwig --- drivers/cdrom/cdrom.c | 2 +- drivers/cdrom/gdrom.c | 2 +- drivers/scsi/sr.c | 2 +- include/linux/cdrom.h | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index e3eab319cb0474..245e5bb

decouple block open flags from fmode_t

2023-06-06 Thread Christoph Hellwig
Hi all, this series adds a new blk_mode_t for block open flags instead of abusing fmode_t. The block open flags work very different from the normal use of fmode_t and only share the basic READ/WRITE flags with it. None of the other normal FMODE_* flags is used, but instead there are three block-

[PATCH 02/31] cdrom: remove the unused bdev argument to cdrom_open

2023-06-06 Thread Christoph Hellwig
Signed-off-by: Christoph Hellwig --- drivers/cdrom/cdrom.c | 3 +-- drivers/cdrom/gdrom.c | 2 +- drivers/scsi/sr.c | 2 +- include/linux/cdrom.h | 3 +-- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index 416f723a2dbb33..e3eab31