Message ID | 20240222124555.2049140-1-yukuai1@huaweicloud.com (mailing list archive) |
---|---|
Headers | show |
Series | fs & block: remove bdev->bd_inode | expand |
The series looks good to me:
Reviewed-by: Christoph Hellwig <hch@lst.de>
Hi, Christian Hi, Christoph Hi, Jan Perhaps now is a good time to send a formal version of this set. However, I'm not sure yet what branch should I rebase and send this set. Should I send to the vfs tree? Thanks, Kuai 在 2024/02/22 20:45, Yu Kuai 写道: > From: Yu Kuai <yukuai3@huawei.com> > > Changes in v4: > - respin on the top of linux-next, based on Christian's patchset to > open bdev as file. Most of patches from v3 is dropped and change to use > file_inode(bdev_file) to get bd_inode or bdev_file->f_mapping to get > bd_inode->i_mapping. > > Changes in v3: > - remove bdev_associated_mapping() and patch 12 from v1; > - add kerneldoc comments for new bdev apis; > - rename __bdev_get_folio() to bdev_get_folio; > - fix a problem in erofs that erofs_init_metabuf() is not always > called. > - add reviewed-by tag for patch 15-17; > > Changes in v2: > - remove some bdev apis that is not necessary; > - pass in offset for bdev_read_folio() and __bdev_get_folio(); > - remove bdev_gfp_constraint() and add a new helper in fs/buffer.c to > prevent access bd_indoe() directly from mapping_gfp_constraint() in > ext4.(patch 15, 16); > - remove block_device_ejected() from ext4. > > Yu Kuai (19): > block: move two helpers into bdev.c > block: remove sync_blockdev_nowait() > block: remove sync_blockdev_range() > block: prevent direct access of bd_inode > bcachefs: remove dead function bdev_sectors() > cramfs: prevent direct access of bd_inode > erofs: prevent direct access of bd_inode > nilfs2: prevent direct access of bd_inode > gfs2: prevent direct access of bd_inode > s390/dasd: use bdev api in dasd_format() > btrfs: prevent direct access of bd_inode > ext4: remove block_device_ejected() > ext4: prevent direct access of bd_inode > jbd2: prevent direct access of bd_inode > bcache: prevent direct access of bd_inode > block2mtd: prevent direct access of bd_inode > dm-vdo: prevent direct access of bd_inode > scsi: factor out a helper bdev_read_folio() from scsi_bios_ptable() > fs & block: remove bdev->bd_inode > > block/bdev.c | 108 +++++++++++++++------- > block/blk-zoned.c | 4 +- > block/blk.h | 2 + > block/fops.c | 4 +- > block/genhd.c | 9 +- > block/ioctl.c | 8 +- > block/partitions/core.c | 8 +- > drivers/md/bcache/super.c | 7 +- > drivers/md/dm-vdo/dedupe.c | 3 +- > drivers/md/dm-vdo/dm-vdo-target.c | 5 +- > drivers/md/dm-vdo/indexer/config.c | 1 + > drivers/md/dm-vdo/indexer/config.h | 3 + > drivers/md/dm-vdo/indexer/index-layout.c | 6 +- > drivers/md/dm-vdo/indexer/index-layout.h | 2 +- > drivers/md/dm-vdo/indexer/index-session.c | 13 +-- > drivers/md/dm-vdo/indexer/index.c | 4 +- > drivers/md/dm-vdo/indexer/index.h | 2 +- > drivers/md/dm-vdo/indexer/indexer.h | 4 +- > drivers/md/dm-vdo/indexer/io-factory.c | 13 ++- > drivers/md/dm-vdo/indexer/io-factory.h | 4 +- > drivers/md/dm-vdo/indexer/volume.c | 4 +- > drivers/md/dm-vdo/indexer/volume.h | 2 +- > drivers/md/md-bitmap.c | 2 +- > drivers/mtd/devices/block2mtd.c | 6 +- > drivers/s390/block/dasd_ioctl.c | 5 +- > drivers/scsi/scsicam.c | 3 +- > fs/affs/file.c | 2 +- > fs/bcachefs/util.h | 5 - > fs/btrfs/dev-replace.c | 2 +- > fs/btrfs/disk-io.c | 17 ++-- > fs/btrfs/disk-io.h | 4 +- > fs/btrfs/inode.c | 2 +- > fs/btrfs/super.c | 2 +- > fs/btrfs/volumes.c | 32 ++++--- > fs/btrfs/volumes.h | 2 +- > fs/btrfs/zoned.c | 20 ++-- > fs/btrfs/zoned.h | 4 +- > fs/buffer.c | 103 ++++++++++++--------- > fs/cramfs/inode.c | 2 +- > fs/direct-io.c | 4 +- > fs/erofs/data.c | 5 +- > fs/erofs/internal.h | 1 + > fs/erofs/zmap.c | 2 +- > fs/exfat/fatent.c | 2 +- > fs/ext2/inode.c | 4 +- > fs/ext2/xattr.c | 2 +- > fs/ext4/dir.c | 2 +- > fs/ext4/ext4_jbd2.c | 2 +- > fs/ext4/inode.c | 8 +- > fs/ext4/mmp.c | 2 +- > fs/ext4/page-io.c | 5 +- > fs/ext4/super.c | 30 ++---- > fs/ext4/xattr.c | 2 +- > fs/f2fs/data.c | 7 +- > fs/f2fs/f2fs.h | 1 + > fs/fat/inode.c | 2 +- > fs/fuse/dax.c | 2 +- > fs/gfs2/aops.c | 2 +- > fs/gfs2/bmap.c | 2 +- > fs/gfs2/glock.c | 2 +- > fs/gfs2/meta_io.c | 2 +- > fs/gfs2/ops_fstype.c | 2 +- > fs/hpfs/file.c | 2 +- > fs/iomap/buffered-io.c | 8 +- > fs/iomap/direct-io.c | 11 ++- > fs/iomap/swapfile.c | 2 +- > fs/iomap/trace.h | 2 +- > fs/jbd2/commit.c | 2 +- > fs/jbd2/journal.c | 34 ++++--- > fs/jbd2/recovery.c | 8 +- > fs/jbd2/revoke.c | 13 +-- > fs/jbd2/transaction.c | 8 +- > fs/mpage.c | 26 ++++-- > fs/nilfs2/btnode.c | 4 +- > fs/nilfs2/gcinode.c | 2 +- > fs/nilfs2/mdt.c | 2 +- > fs/nilfs2/page.c | 4 +- > fs/nilfs2/recovery.c | 27 ++++-- > fs/nilfs2/segment.c | 2 +- > fs/ntfs3/fsntfs.c | 8 +- > fs/ntfs3/inode.c | 4 +- > fs/ntfs3/super.c | 2 +- > fs/ocfs2/journal.c | 2 +- > fs/reiserfs/fix_node.c | 2 +- > fs/reiserfs/journal.c | 10 +- > fs/reiserfs/prints.c | 4 +- > fs/reiserfs/reiserfs.h | 6 +- > fs/reiserfs/stree.c | 2 +- > fs/reiserfs/tail_conversion.c | 2 +- > fs/sync.c | 9 +- > fs/xfs/xfs_iomap.c | 4 +- > fs/zonefs/file.c | 4 +- > include/linux/blk_types.h | 1 - > include/linux/blkdev.h | 21 +---- > include/linux/buffer_head.h | 73 ++++++++++----- > include/linux/iomap.h | 14 ++- > include/linux/jbd2.h | 18 +++- > include/trace/events/block.h | 2 +- > 98 files changed, 491 insertions(+), 376 deletions(-) >
On Fri, Mar 15, 2024 at 08:08:49PM +0800, Yu Kuai wrote: > Hi, Christian > Hi, Christoph > Hi, Jan > > Perhaps now is a good time to send a formal version of this set. > However, I'm not sure yet what branch should I rebase and send this set. > Should I send to the vfs tree? Nearly all of it is in fs/ so I'd say yes.
Hi, Christian 在 2024/03/15 21:54, Christian Brauner 写道: > On Fri, Mar 15, 2024 at 08:08:49PM +0800, Yu Kuai wrote: >> Hi, Christian >> Hi, Christoph >> Hi, Jan >> >> Perhaps now is a good time to send a formal version of this set. >> However, I'm not sure yet what branch should I rebase and send this set. >> Should I send to the vfs tree? > > Nearly all of it is in fs/ so I'd say yes. > . I see that you just create a new branch vfs.fixes, perhaps can I rebase this set against this branch? Thanks, Kuai >
On Sat, Mar 16, 2024 at 10:49:33AM +0800, Yu Kuai wrote: > Hi, Christian > > 在 2024/03/15 21:54, Christian Brauner 写道: > > On Fri, Mar 15, 2024 at 08:08:49PM +0800, Yu Kuai wrote: > > > Hi, Christian > > > Hi, Christoph > > > Hi, Jan > > > > > > Perhaps now is a good time to send a formal version of this set. > > > However, I'm not sure yet what branch should I rebase and send this set. > > > Should I send to the vfs tree? > > > > Nearly all of it is in fs/ so I'd say yes. > > . > > I see that you just create a new branch vfs.fixes, perhaps can I rebase > this set against this branch? Please base it on vfs.super. I'll rebase it to v6.9-rc1 on Sunday.
Hi, 在 2024/03/18 17:39, Christian Brauner 写道: > On Sat, Mar 16, 2024 at 10:49:33AM +0800, Yu Kuai wrote: >> Hi, Christian >> >> 在 2024/03/15 21:54, Christian Brauner 写道: >>> On Fri, Mar 15, 2024 at 08:08:49PM +0800, Yu Kuai wrote: >>>> Hi, Christian >>>> Hi, Christoph >>>> Hi, Jan >>>> >>>> Perhaps now is a good time to send a formal version of this set. >>>> However, I'm not sure yet what branch should I rebase and send this set. >>>> Should I send to the vfs tree? >>> >>> Nearly all of it is in fs/ so I'd say yes. >>> . >> >> I see that you just create a new branch vfs.fixes, perhaps can I rebase >> this set against this branch? > > Please base it on vfs.super. I'll rebase it to v6.9-rc1 on Sunday. Okay, I just see that vfs.super doesn't contain commit 1cdeac6da33f("btrfs: pass btrfs_device to btrfs_scratch_superblocks()"), and you might need to fix the conflict at some point. Thanks, Kuai > . >
Hi, 在 2024/03/19 9:18, Yu Kuai 写道: > Hi, > > 在 2024/03/18 17:39, Christian Brauner 写道: >> On Sat, Mar 16, 2024 at 10:49:33AM +0800, Yu Kuai wrote: >>> Hi, Christian >>> >>> 在 2024/03/15 21:54, Christian Brauner 写道: >>>> On Fri, Mar 15, 2024 at 08:08:49PM +0800, Yu Kuai wrote: >>>>> Hi, Christian >>>>> Hi, Christoph >>>>> Hi, Jan >>>>> >>>>> Perhaps now is a good time to send a formal version of this set. >>>>> However, I'm not sure yet what branch should I rebase and send this >>>>> set. >>>>> Should I send to the vfs tree? >>>> >>>> Nearly all of it is in fs/ so I'd say yes. >>>> . >>> >>> I see that you just create a new branch vfs.fixes, perhaps can I rebase >>> this set against this branch? >> >> Please base it on vfs.super. I'll rebase it to v6.9-rc1 on Sunday. > > Okay, I just see that vfs.super doesn't contain commit > 1cdeac6da33f("btrfs: pass btrfs_device to btrfs_scratch_superblocks()"), > and you might need to fix the conflict at some point. And there is another problem, dm-vdo doesn't exist in vfs.super yet. Do you still want me to rebase here? Thanks, Kuai > > Thanks, > Kuai > >> . >> > > . >
On 3/18/24 21:43, Yu Kuai wrote: > Hi, > > 在 2024/03/19 9:18, Yu Kuai 写道: >> Hi, >> >> 在 2024/03/18 17:39, Christian Brauner 写道: >>> On Sat, Mar 16, 2024 at 10:49:33AM +0800, Yu Kuai wrote: >>>> Hi, Christian >>>> >>>> 在 2024/03/15 21:54, Christian Brauner 写道: >>>>> On Fri, Mar 15, 2024 at 08:08:49PM +0800, Yu Kuai wrote: >>>>>> Hi, Christian >>>>>> Hi, Christoph >>>>>> Hi, Jan >>>>>> >>>>>> Perhaps now is a good time to send a formal version of this set. >>>>>> However, I'm not sure yet what branch should I rebase and send >>>>>> this set. >>>>>> Should I send to the vfs tree? >>>>> >>>>> Nearly all of it is in fs/ so I'd say yes. >>>>> . >>>> >>>> I see that you just create a new branch vfs.fixes, perhaps can I rebase >>>> this set against this branch? >>> >>> Please base it on vfs.super. I'll rebase it to v6.9-rc1 on Sunday. >> >> Okay, I just see that vfs.super doesn't contain commit >> 1cdeac6da33f("btrfs: pass btrfs_device to btrfs_scratch_superblocks()"), >> and you might need to fix the conflict at some point. > > And there is another problem, dm-vdo doesn't exist in vfs.super yet. Do > you still want me to rebase here? > The dm-vdo changes don't appear to rely on earlier patches in the series, so I think dm-vdo could incorporate the dm-vdo patch independently from the rest of the series, if that would be helpful. (I don't want to confuse things too much.) In that case it would go through the dm tree with the rest of dm-vdo. Matt
Hi, 在 2024/03/19 10:13, Matthew Sakai 写道: > > On 3/18/24 21:43, Yu Kuai wrote: >> Hi, >> >> 在 2024/03/19 9:18, Yu Kuai 写道: >>> Hi, >>> >>> 在 2024/03/18 17:39, Christian Brauner 写道: >>>> On Sat, Mar 16, 2024 at 10:49:33AM +0800, Yu Kuai wrote: >>>>> Hi, Christian >>>>> >>>>> 在 2024/03/15 21:54, Christian Brauner 写道: >>>>>> On Fri, Mar 15, 2024 at 08:08:49PM +0800, Yu Kuai wrote: >>>>>>> Hi, Christian >>>>>>> Hi, Christoph >>>>>>> Hi, Jan >>>>>>> >>>>>>> Perhaps now is a good time to send a formal version of this set. >>>>>>> However, I'm not sure yet what branch should I rebase and send >>>>>>> this set. >>>>>>> Should I send to the vfs tree? >>>>>> >>>>>> Nearly all of it is in fs/ so I'd say yes. >>>>>> . >>>>> >>>>> I see that you just create a new branch vfs.fixes, perhaps can I >>>>> rebase >>>>> this set against this branch? >>>> >>>> Please base it on vfs.super. I'll rebase it to v6.9-rc1 on Sunday. >>> >>> Okay, I just see that vfs.super doesn't contain commit >>> 1cdeac6da33f("btrfs: pass btrfs_device to btrfs_scratch_superblocks()"), >>> and you might need to fix the conflict at some point. >> >> And there is another problem, dm-vdo doesn't exist in vfs.super yet. Do >> you still want me to rebase here? >> > > The dm-vdo changes don't appear to rely on earlier patches in the > series, so I think dm-vdo could incorporate the dm-vdo patch > independently from the rest of the series, if that would be helpful. (I > don't want to confuse things too much.) In that case it would go through > the dm tree with the rest of dm-vdo. We want to remove the 'bd_inode' field in this set. And if we want to go through dm tree for dm-vdo changes, we must keep the field for now. I don't have preference, Christian will make the decision.
From: Yu Kuai <yukuai3@huawei.com> Changes in v4: - respin on the top of linux-next, based on Christian's patchset to open bdev as file. Most of patches from v3 is dropped and change to use file_inode(bdev_file) to get bd_inode or bdev_file->f_mapping to get bd_inode->i_mapping. Changes in v3: - remove bdev_associated_mapping() and patch 12 from v1; - add kerneldoc comments for new bdev apis; - rename __bdev_get_folio() to bdev_get_folio; - fix a problem in erofs that erofs_init_metabuf() is not always called. - add reviewed-by tag for patch 15-17; Changes in v2: - remove some bdev apis that is not necessary; - pass in offset for bdev_read_folio() and __bdev_get_folio(); - remove bdev_gfp_constraint() and add a new helper in fs/buffer.c to prevent access bd_indoe() directly from mapping_gfp_constraint() in ext4.(patch 15, 16); - remove block_device_ejected() from ext4. Yu Kuai (19): block: move two helpers into bdev.c block: remove sync_blockdev_nowait() block: remove sync_blockdev_range() block: prevent direct access of bd_inode bcachefs: remove dead function bdev_sectors() cramfs: prevent direct access of bd_inode erofs: prevent direct access of bd_inode nilfs2: prevent direct access of bd_inode gfs2: prevent direct access of bd_inode s390/dasd: use bdev api in dasd_format() btrfs: prevent direct access of bd_inode ext4: remove block_device_ejected() ext4: prevent direct access of bd_inode jbd2: prevent direct access of bd_inode bcache: prevent direct access of bd_inode block2mtd: prevent direct access of bd_inode dm-vdo: prevent direct access of bd_inode scsi: factor out a helper bdev_read_folio() from scsi_bios_ptable() fs & block: remove bdev->bd_inode block/bdev.c | 108 +++++++++++++++------- block/blk-zoned.c | 4 +- block/blk.h | 2 + block/fops.c | 4 +- block/genhd.c | 9 +- block/ioctl.c | 8 +- block/partitions/core.c | 8 +- drivers/md/bcache/super.c | 7 +- drivers/md/dm-vdo/dedupe.c | 3 +- drivers/md/dm-vdo/dm-vdo-target.c | 5 +- drivers/md/dm-vdo/indexer/config.c | 1 + drivers/md/dm-vdo/indexer/config.h | 3 + drivers/md/dm-vdo/indexer/index-layout.c | 6 +- drivers/md/dm-vdo/indexer/index-layout.h | 2 +- drivers/md/dm-vdo/indexer/index-session.c | 13 +-- drivers/md/dm-vdo/indexer/index.c | 4 +- drivers/md/dm-vdo/indexer/index.h | 2 +- drivers/md/dm-vdo/indexer/indexer.h | 4 +- drivers/md/dm-vdo/indexer/io-factory.c | 13 ++- drivers/md/dm-vdo/indexer/io-factory.h | 4 +- drivers/md/dm-vdo/indexer/volume.c | 4 +- drivers/md/dm-vdo/indexer/volume.h | 2 +- drivers/md/md-bitmap.c | 2 +- drivers/mtd/devices/block2mtd.c | 6 +- drivers/s390/block/dasd_ioctl.c | 5 +- drivers/scsi/scsicam.c | 3 +- fs/affs/file.c | 2 +- fs/bcachefs/util.h | 5 - fs/btrfs/dev-replace.c | 2 +- fs/btrfs/disk-io.c | 17 ++-- fs/btrfs/disk-io.h | 4 +- fs/btrfs/inode.c | 2 +- fs/btrfs/super.c | 2 +- fs/btrfs/volumes.c | 32 ++++--- fs/btrfs/volumes.h | 2 +- fs/btrfs/zoned.c | 20 ++-- fs/btrfs/zoned.h | 4 +- fs/buffer.c | 103 ++++++++++++--------- fs/cramfs/inode.c | 2 +- fs/direct-io.c | 4 +- fs/erofs/data.c | 5 +- fs/erofs/internal.h | 1 + fs/erofs/zmap.c | 2 +- fs/exfat/fatent.c | 2 +- fs/ext2/inode.c | 4 +- fs/ext2/xattr.c | 2 +- fs/ext4/dir.c | 2 +- fs/ext4/ext4_jbd2.c | 2 +- fs/ext4/inode.c | 8 +- fs/ext4/mmp.c | 2 +- fs/ext4/page-io.c | 5 +- fs/ext4/super.c | 30 ++---- fs/ext4/xattr.c | 2 +- fs/f2fs/data.c | 7 +- fs/f2fs/f2fs.h | 1 + fs/fat/inode.c | 2 +- fs/fuse/dax.c | 2 +- fs/gfs2/aops.c | 2 +- fs/gfs2/bmap.c | 2 +- fs/gfs2/glock.c | 2 +- fs/gfs2/meta_io.c | 2 +- fs/gfs2/ops_fstype.c | 2 +- fs/hpfs/file.c | 2 +- fs/iomap/buffered-io.c | 8 +- fs/iomap/direct-io.c | 11 ++- fs/iomap/swapfile.c | 2 +- fs/iomap/trace.h | 2 +- fs/jbd2/commit.c | 2 +- fs/jbd2/journal.c | 34 ++++--- fs/jbd2/recovery.c | 8 +- fs/jbd2/revoke.c | 13 +-- fs/jbd2/transaction.c | 8 +- fs/mpage.c | 26 ++++-- fs/nilfs2/btnode.c | 4 +- fs/nilfs2/gcinode.c | 2 +- fs/nilfs2/mdt.c | 2 +- fs/nilfs2/page.c | 4 +- fs/nilfs2/recovery.c | 27 ++++-- fs/nilfs2/segment.c | 2 +- fs/ntfs3/fsntfs.c | 8 +- fs/ntfs3/inode.c | 4 +- fs/ntfs3/super.c | 2 +- fs/ocfs2/journal.c | 2 +- fs/reiserfs/fix_node.c | 2 +- fs/reiserfs/journal.c | 10 +- fs/reiserfs/prints.c | 4 +- fs/reiserfs/reiserfs.h | 6 +- fs/reiserfs/stree.c | 2 +- fs/reiserfs/tail_conversion.c | 2 +- fs/sync.c | 9 +- fs/xfs/xfs_iomap.c | 4 +- fs/zonefs/file.c | 4 +- include/linux/blk_types.h | 1 - include/linux/blkdev.h | 21 +---- include/linux/buffer_head.h | 73 ++++++++++----- include/linux/iomap.h | 14 ++- include/linux/jbd2.h | 18 +++- include/trace/events/block.h | 2 +- 98 files changed, 491 insertions(+), 376 deletions(-)