From: Al Viro <viro@zeniv.linux.org.uk>
To: Jan Kara <jack@suse.cz>
Cc: Dave Kleikamp <shaggy@kernel.org>,
jfs-discussion@lists.sourceforge.net,
"Darrick J. Wong" <djwong@kernel.org>,
linux-nvme@lists.infradead.org,
Joseph Qi <joseph.qi@linux.alibaba.com>,
dm-devel@redhat.com, target-devel@vger.kernel.org,
linux-mtd@lists.infradead.org, Jack Wang <jinpu.wang@ionos.com>,
Alasdair Kergon <agk@redhat.com>,
drbd-dev@lists.linbit.com, linux-s390@vger.kernel.org,
linux-nilfs@vger.kernel.org, linux-scsi@vger.kernel.org,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Christoph Hellwig <hch@infradead.org>,
xen-devel@lists.xenproject.org, Gao Xiang <xiang@kernel.org>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
Sven Schnelle <svens@linux.ibm.com>,
linux-pm@vger.kernel.org, Mike Snitzer <snitzer@kernel.org>,
Chao Yu <chao@kernel.org>, Joern Engel <joern@lazybastard.org>,
reiserfs-devel@vger.kernel.org, linux-block@vger.kernel.org,
linux-bcache@vger.kernel.org, David Sterba <dsterba@suse.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
linux-raid@vger.kernel.org, linux-nfs@vger.kernel.org,
linux-ext4@vger.kernel.org, Ted Tso <tytso@mit.edu>,
linux-mm@kvack.org, Song Liu <song@kernel.org>,
linux-f2fs-devel@lists.sourceforge.net,
linux-xfs@vger.kernel.org, Minchan Kim <minchan@kernel.org>,
ocfs2-devel@oss.oracle.com, Anna Schumaker <anna@kernel.org>,
linux-fsdevel@vger.kernel.org,
"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-erofs@lists.ozlabs.org, linux-btrfs@vger.kernel.org
Subject: Re: [dm-devel] [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle
Date: Fri, 25 Aug 2023 02:58:43 +0100 [thread overview]
Message-ID: <20230825015843.GB95084@ZenIV> (raw)
In-Reply-To: <20230810171429.31759-1-jack@suse.cz>
On Fri, Aug 11, 2023 at 01:04:31PM +0200, Jan Kara wrote:
> Hello,
>
> this is a v2 of the patch series which implements the idea of blkdev_get_by_*()
> calls returning bdev_handle which is then passed to blkdev_put() [1]. This
> makes the get and put calls for bdevs more obviously matching and allows us to
> propagate context from get to put without having to modify all the users
> (again!). In particular I need to propagate used open flags to blkdev_put() to
> be able count writeable opens and add support for blocking writes to mounted
> block devices. I'll send that series separately.
>
> The series is based on Christian's vfs tree as of yesterday as there is quite
> some overlap. Patches have passed some reasonable testing - I've tested block
> changes, md, dm, bcache, xfs, btrfs, ext4, swap. This obviously doesn't cover
> everything so I'd like to ask respective maintainers to review / test their
> changes. Thanks! I've pushed out the full branch to:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git bdev_handle
>
> to ease review / testing.
Hmm... Completely Insane Idea(tm): how about turning that thing inside out and
having your bdev_open_by... return an actual opened struct file?
After all, we do that for sockets and pipes just fine and that's a whole lot
hotter area.
Suppose we leave blkdev_open()/blkdev_release() as-is. No need to mess with
what we have for normal opened files for block devices. And have block_open_by_dev()
that would find bdev, etc., same yours does and shove it into anon file.
Paired with plain fput() - no need to bother with new primitives for closing.
With a helper returning I_BDEV(bdev_file_inode(file)) to get from those to bdev.
NOTE: I'm not suggesting replacing ->s_bdev with struct file * if we do that -
we want that value cached, obviously. Just store both...
Not saying it's a good idea, but... might be interesting to look into.
Comments?
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Jan Kara <jack@suse.cz>
Cc: linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
Alasdair Kergon <agk@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Anna Schumaker <anna@kernel.org>, Chao Yu <chao@kernel.org>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
"Darrick J. Wong" <djwong@kernel.org>,
Dave Kleikamp <shaggy@kernel.org>,
David Sterba <dsterba@suse.com>,
dm-devel@redhat.com, drbd-dev@lists.linbit.com,
Gao Xiang <xiang@kernel.org>, Jack Wang <jinpu.wang@ionos.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
jfs-discussion@lists.sourceforge.net,
Joern Engel <joern@lazybastard.org>,
Joseph Qi <joseph.qi@linux.alibaba.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
linux-bcache@vger.kernel.org, linux-btrfs@vger.kernel.org,
linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net, linux-mm@kvack.org,
linux-mtd@lists.infradead.org, linux-nfs@vger.kernel.org,
linux-nilfs@vger.kernel.org, linux-nvme@lists.infradead.org,
linux-pm@vger.kernel.org, linux-raid@vger.kernel.org,
linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-xfs@vger.kernel.org,
"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
Mike Snitzer <snitzer@kernel.org>,
Minchan Kim <minchan@kernel.org>,
ocfs2-devel@oss.oracle.com, reiserfs-devel@vger.kernel.org,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Song Liu <song@kernel.org>, Sven Schnelle <svens@linux.ibm.com>,
target-devel@vger.kernel.org, Ted Tso <tytso@mit.edu>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle
Date: Fri, 25 Aug 2023 02:58:43 +0100 [thread overview]
Message-ID: <20230825015843.GB95084@ZenIV> (raw)
In-Reply-To: <20230810171429.31759-1-jack@suse.cz>
On Fri, Aug 11, 2023 at 01:04:31PM +0200, Jan Kara wrote:
> Hello,
>
> this is a v2 of the patch series which implements the idea of blkdev_get_by_*()
> calls returning bdev_handle which is then passed to blkdev_put() [1]. This
> makes the get and put calls for bdevs more obviously matching and allows us to
> propagate context from get to put without having to modify all the users
> (again!). In particular I need to propagate used open flags to blkdev_put() to
> be able count writeable opens and add support for blocking writes to mounted
> block devices. I'll send that series separately.
>
> The series is based on Christian's vfs tree as of yesterday as there is quite
> some overlap. Patches have passed some reasonable testing - I've tested block
> changes, md, dm, bcache, xfs, btrfs, ext4, swap. This obviously doesn't cover
> everything so I'd like to ask respective maintainers to review / test their
> changes. Thanks! I've pushed out the full branch to:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git bdev_handle
>
> to ease review / testing.
Hmm... Completely Insane Idea(tm): how about turning that thing inside out and
having your bdev_open_by... return an actual opened struct file?
After all, we do that for sockets and pipes just fine and that's a whole lot
hotter area.
Suppose we leave blkdev_open()/blkdev_release() as-is. No need to mess with
what we have for normal opened files for block devices. And have block_open_by_dev()
that would find bdev, etc., same yours does and shove it into anon file.
Paired with plain fput() - no need to bother with new primitives for closing.
With a helper returning I_BDEV(bdev_file_inode(file)) to get from those to bdev.
NOTE: I'm not suggesting replacing ->s_bdev with struct file * if we do that -
we want that value cached, obviously. Just store both...
Not saying it's a good idea, but... might be interesting to look into.
Comments?
WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Jan Kara <jack@suse.cz>
Cc: Dave Kleikamp <shaggy@kernel.org>,
jfs-discussion@lists.sourceforge.net,
"Darrick J. Wong" <djwong@kernel.org>,
linux-nvme@lists.infradead.org,
Joseph Qi <joseph.qi@linux.alibaba.com>,
dm-devel@redhat.com, target-devel@vger.kernel.org,
linux-mtd@lists.infradead.org, Jack Wang <jinpu.wang@ionos.com>,
Alasdair Kergon <agk@redhat.com>,
drbd-dev@lists.linbit.com, linux-s390@vger.kernel.org,
linux-nilfs@vger.kernel.org, linux-scsi@vger.kernel.org,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Christoph Hellwig <hch@infradead.org>,
xen-devel@lists.xenproject.org,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
Sven Schnelle <svens@linux.ibm.com>,
linux-pm@vger.kernel.org, Mike Snitzer <snitzer@kernel.org>,
Joern Engel <joern@lazybastard.org>,
reiserfs-devel@vger.kernel.org, linux-block@vger.kernel.org,
linux-bcache@vger.kernel.org, David Sterba <dsterba@suse.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Trond Myklebust <trond.myklebust@hammers pace.com>,
linux-raid@vger.kernel.org, linux-nfs@vger.kernel.org,
linux-ext4@vger.kernel.org, Ted Tso <tytso@mit.edu>,
linux-mm@kvack.org, Song Liu <song@kernel.org>,
linux-f2fs-devel@lists.sourceforge.net,
linux-xfs@vger.kernel.org, Minchan Kim <minchan@kernel.org>,
ocfs2-devel@oss.oracle.com, Anna Schumaker <anna@kernel.org>,
linux-fsdevel@vger.kernel.org,
"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-erofs@lists.ozlabs.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle
Date: Fri, 25 Aug 2023 02:58:43 +0100 [thread overview]
Message-ID: <20230825015843.GB95084@ZenIV> (raw)
In-Reply-To: <20230810171429.31759-1-jack@suse.cz>
On Fri, Aug 11, 2023 at 01:04:31PM +0200, Jan Kara wrote:
> Hello,
>
> this is a v2 of the patch series which implements the idea of blkdev_get_by_*()
> calls returning bdev_handle which is then passed to blkdev_put() [1]. This
> makes the get and put calls for bdevs more obviously matching and allows us to
> propagate context from get to put without having to modify all the users
> (again!). In particular I need to propagate used open flags to blkdev_put() to
> be able count writeable opens and add support for blocking writes to mounted
> block devices. I'll send that series separately.
>
> The series is based on Christian's vfs tree as of yesterday as there is quite
> some overlap. Patches have passed some reasonable testing - I've tested block
> changes, md, dm, bcache, xfs, btrfs, ext4, swap. This obviously doesn't cover
> everything so I'd like to ask respective maintainers to review / test their
> changes. Thanks! I've pushed out the full branch to:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git bdev_handle
>
> to ease review / testing.
Hmm... Completely Insane Idea(tm): how about turning that thing inside out and
having your bdev_open_by... return an actual opened struct file?
After all, we do that for sockets and pipes just fine and that's a whole lot
hotter area.
Suppose we leave blkdev_open()/blkdev_release() as-is. No need to mess with
what we have for normal opened files for block devices. And have block_open_by_dev()
that would find bdev, etc., same yours does and shove it into anon file.
Paired with plain fput() - no need to bother with new primitives for closing.
With a helper returning I_BDEV(bdev_file_inode(file)) to get from those to bdev.
NOTE: I'm not suggesting replacing ->s_bdev with struct file * if we do that -
we want that value cached, obviously. Just store both...
Not saying it's a good idea, but... might be interesting to look into.
Comments?
WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Jan Kara <jack@suse.cz>
Cc: Dave Kleikamp <shaggy@kernel.org>,
jfs-discussion@lists.sourceforge.net,
"Darrick J. Wong" <djwong@kernel.org>,
linux-nvme@lists.infradead.org,
Joseph Qi <joseph.qi@linux.alibaba.com>,
dm-devel@redhat.com, target-devel@vger.kernel.org,
linux-mtd@lists.infradead.org, Jack Wang <jinpu.wang@ionos.com>,
Alasdair Kergon <agk@redhat.com>,
drbd-dev@lists.linbit.com, linux-s390@vger.kernel.org,
linux-nilfs@vger.kernel.org, linux-scsi@vger.kernel.org,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Christoph Hellwig <hch@infradead.org>,
xen-devel@lists.xenproject.org, Gao Xiang <xiang@kernel.org>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
Sven Schnelle <svens@linux.ibm.com>,
linux-pm@vger.kernel.org, Mike Snitzer <snitzer@kernel.org>,
Joern Engel <joern@lazybastard.org>,
reiserfs-devel@vger.kernel.org, linux-block@vger.kernel.org,
linux-bcache@vger.kernel.org, David Sterba <dsterba@suse.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
linux-raid@vger.kernel.org, linux-nfs@vger.kernel.org,
linux-ext4@vger.kernel.org, Ted Tso <tytso@mit.edu>,
linux-mm@kvack.org, Song Liu <song@kernel.org>,
linux-f2fs-devel@lists.sourceforge.net,
linux-xfs@vger.kernel.org, Minchan Kim <minchan@kernel.org>,
ocfs2-devel@oss.oracle.com, Anna Schumaker <anna@kernel.org>,
linux-fsdevel@vger.kernel.org,
"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-erofs@lists.ozlabs.org, linux-btrfs@vger.kernel.org
Subject: Re: [f2fs-dev] [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle
Date: Fri, 25 Aug 2023 02:58:43 +0100 [thread overview]
Message-ID: <20230825015843.GB95084@ZenIV> (raw)
In-Reply-To: <20230810171429.31759-1-jack@suse.cz>
On Fri, Aug 11, 2023 at 01:04:31PM +0200, Jan Kara wrote:
> Hello,
>
> this is a v2 of the patch series which implements the idea of blkdev_get_by_*()
> calls returning bdev_handle which is then passed to blkdev_put() [1]. This
> makes the get and put calls for bdevs more obviously matching and allows us to
> propagate context from get to put without having to modify all the users
> (again!). In particular I need to propagate used open flags to blkdev_put() to
> be able count writeable opens and add support for blocking writes to mounted
> block devices. I'll send that series separately.
>
> The series is based on Christian's vfs tree as of yesterday as there is quite
> some overlap. Patches have passed some reasonable testing - I've tested block
> changes, md, dm, bcache, xfs, btrfs, ext4, swap. This obviously doesn't cover
> everything so I'd like to ask respective maintainers to review / test their
> changes. Thanks! I've pushed out the full branch to:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git bdev_handle
>
> to ease review / testing.
Hmm... Completely Insane Idea(tm): how about turning that thing inside out and
having your bdev_open_by... return an actual opened struct file?
After all, we do that for sockets and pipes just fine and that's a whole lot
hotter area.
Suppose we leave blkdev_open()/blkdev_release() as-is. No need to mess with
what we have for normal opened files for block devices. And have block_open_by_dev()
that would find bdev, etc., same yours does and shove it into anon file.
Paired with plain fput() - no need to bother with new primitives for closing.
With a helper returning I_BDEV(bdev_file_inode(file)) to get from those to bdev.
NOTE: I'm not suggesting replacing ->s_bdev with struct file * if we do that -
we want that value cached, obviously. Just store both...
Not saying it's a good idea, but... might be interesting to look into.
Comments?
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Jan Kara <jack@suse.cz>
Cc: linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
Alasdair Kergon <agk@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Anna Schumaker <anna@kernel.org>, Chao Yu <chao@kernel.org>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
"Darrick J. Wong" <djwong@kernel.org>,
Dave Kleikamp <shaggy@kernel.org>,
David Sterba <dsterba@suse.com>,
dm-devel@redhat.com, drbd-dev@lists.linbit.com,
Gao Xiang <xiang@kernel.org>, Jack Wang <jinpu.wang@ionos.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
jfs-discussion@lists.sourceforge.net,
Joern Engel <joern@lazybastard.org>,
Joseph Qi <joseph.qi@linux.alibaba.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
linux-bcache@vger.kernel.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle
Date: Fri, 25 Aug 2023 02:58:43 +0100 [thread overview]
Message-ID: <20230825015843.GB95084@ZenIV> (raw)
In-Reply-To: <20230810171429.31759-1-jack@suse.cz>
On Fri, Aug 11, 2023 at 01:04:31PM +0200, Jan Kara wrote:
> Hello,
>
> this is a v2 of the patch series which implements the idea of blkdev_get_by_*()
> calls returning bdev_handle which is then passed to blkdev_put() [1]. This
> makes the get and put calls for bdevs more obviously matching and allows us to
> propagate context from get to put without having to modify all the users
> (again!). In particular I need to propagate used open flags to blkdev_put() to
> be able count writeable opens and add support for blocking writes to mounted
> block devices. I'll send that series separately.
>
> The series is based on Christian's vfs tree as of yesterday as there is quite
> some overlap. Patches have passed some reasonable testing - I've tested block
> changes, md, dm, bcache, xfs, btrfs, ext4, swap. This obviously doesn't cover
> everything so I'd like to ask respective maintainers to review / test their
> changes. Thanks! I've pushed out the full branch to:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git bdev_handle
>
> to ease review / testing.
Hmm... Completely Insane Idea(tm): how about turning that thing inside out and
having your bdev_open_by... return an actual opened struct file?
After all, we do that for sockets and pipes just fine and that's a whole lot
hotter area.
Suppose we leave blkdev_open()/blkdev_release() as-is. No need to mess with
what we have for normal opened files for block devices. And have block_open_by_dev()
that would find bdev, etc., same yours does and shove it into anon file.
Paired with plain fput() - no need to bother with new primitives for closing.
With a helper returning I_BDEV(bdev_file_inode(file)) to get from those to bdev.
NOTE: I'm not suggesting replacing ->s_bdev with struct file * if we do that -
we want that value cached, obviously. Just store both...
Not saying it's a good idea, but... might be interesting to look into.
Comments?
WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Jan Kara <jack@suse.cz>
Cc: linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
Alasdair Kergon <agk@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Anna Schumaker <anna@kernel.org>, Chao Yu <chao@kernel.org>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
"Darrick J. Wong" <djwong@kernel.org>,
Dave Kleikamp <shaggy@kernel.org>,
David Sterba <dsterba@suse.com>,
dm-devel@redhat.com, drbd-dev@lists.linbit.com,
Gao Xiang <xiang@kernel.org>, Jack Wang <jinpu.wang@ionos.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
jfs-discussion@lists.sourceforge.net,
Joern Engel <joern@lazybastard.org>,
Joseph Qi <joseph.qi@linux.alibaba.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
linux-bcache@vger.kernel.org, linux-btrfs@vger.kernel.org,
linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net, linux-mm@kvack.org,
linux-mtd@lists.infradead.org, linux-nfs@vger.kernel.org,
linux-nilfs@vger.kernel.org, linux-nvme@lists.infradead.org,
linux-pm@vger.kernel.org, linux-raid@vger.kernel.org,
linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-xfs@vger.kernel.org,
"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
Mike Snitzer <snitzer@kernel.org>,
Minchan Kim <minchan@kernel.org>,
ocfs2-devel@oss.oracle.com, reiserfs-devel@vger.kernel.org,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Song Liu <song@kernel.org>, Sven Schnelle <svens@linux.ibm.com>,
target-devel@vger.kernel.org, Ted Tso <tytso@mit.edu>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle
Date: Fri, 25 Aug 2023 02:58:43 +0100 [thread overview]
Message-ID: <20230825015843.GB95084@ZenIV> (raw)
In-Reply-To: <20230810171429.31759-1-jack@suse.cz>
On Fri, Aug 11, 2023 at 01:04:31PM +0200, Jan Kara wrote:
> Hello,
>
> this is a v2 of the patch series which implements the idea of blkdev_get_by_*()
> calls returning bdev_handle which is then passed to blkdev_put() [1]. This
> makes the get and put calls for bdevs more obviously matching and allows us to
> propagate context from get to put without having to modify all the users
> (again!). In particular I need to propagate used open flags to blkdev_put() to
> be able count writeable opens and add support for blocking writes to mounted
> block devices. I'll send that series separately.
>
> The series is based on Christian's vfs tree as of yesterday as there is quite
> some overlap. Patches have passed some reasonable testing - I've tested block
> changes, md, dm, bcache, xfs, btrfs, ext4, swap. This obviously doesn't cover
> everything so I'd like to ask respective maintainers to review / test their
> changes. Thanks! I've pushed out the full branch to:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git bdev_handle
>
> to ease review / testing.
Hmm... Completely Insane Idea(tm): how about turning that thing inside out and
having your bdev_open_by... return an actual opened struct file?
After all, we do that for sockets and pipes just fine and that's a whole lot
hotter area.
Suppose we leave blkdev_open()/blkdev_release() as-is. No need to mess with
what we have for normal opened files for block devices. And have block_open_by_dev()
that would find bdev, etc., same yours does and shove it into anon file.
Paired with plain fput() - no need to bother with new primitives for closing.
With a helper returning I_BDEV(bdev_file_inode(file)) to get from those to bdev.
NOTE: I'm not suggesting replacing ->s_bdev with struct file * if we do that -
we want that value cached, obviously. Just store both...
Not saying it's a good idea, but... might be interesting to look into.
Comments?
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Jan Kara <jack@suse.cz>
Cc: Dave Kleikamp <shaggy@kernel.org>,
jfs-discussion@lists.sourceforge.net,
"Darrick J. Wong" <djwong@kernel.org>,
linux-nvme@lists.infradead.org,
Joseph Qi <joseph.qi@linux.alibaba.com>,
dm-devel@redhat.com, target-devel@vger.kernel.org,
linux-mtd@lists.infradead.org, Jack Wang <jinpu.wang@ionos.com>,
Alasdair Kergon <agk@redhat.com>,
drbd-dev@lists.linbit.com, linux-s390@vger.kernel.org,
linux-nilfs@vger.kernel.org, linux-scsi@vger.kernel.org,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Christoph Hellwig <hch@infradead.org>,
xen-devel@lists.xenproject.org, Gao Xiang <xiang@kernel.org>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
Sven Schnelle <svens@linux.ibm.com>,
linux-pm@vger.kernel.org, Mike Snitzer <snitzer@kernel.org>,
Chao Yu <chao@kernel.org>, Joern Engel <joern@lazybastard.org>,
reiserfs-devel@vger.kernel.org, linux-block@vger.kernel.org,
linux-bcache@vger.kernel.org, David Sterba <dsterba@suse.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
linux-raid@vger.kernel.org, linux-nfs@vger.kernel.org,
linux-ext4@vger.kernel.org, Ted Tso <tytso@mit.edu>,
linux-mm@kvack.org, Song Liu <song@kernel.org>,
linux-f2fs-devel@lists.sourceforge.net,
linux-xfs@vger.kernel.org, Minchan Kim <minchan@kernel.org>,
ocfs2-devel@oss.oracle.com, Anna Schumaker <anna@kernel.org>,
linux-fsdevel@vger.kernel.org,
"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-erofs@lists.ozlabs.org, linux-btrfs@vger.kernel.org
Subject: Re: [Drbd-dev] [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle
Date: Fri, 25 Aug 2023 02:58:43 +0100 [thread overview]
Message-ID: <20230825015843.GB95084@ZenIV> (raw)
In-Reply-To: <20230810171429.31759-1-jack@suse.cz>
On Fri, Aug 11, 2023 at 01:04:31PM +0200, Jan Kara wrote:
> Hello,
>
> this is a v2 of the patch series which implements the idea of blkdev_get_by_*()
> calls returning bdev_handle which is then passed to blkdev_put() [1]. This
> makes the get and put calls for bdevs more obviously matching and allows us to
> propagate context from get to put without having to modify all the users
> (again!). In particular I need to propagate used open flags to blkdev_put() to
> be able count writeable opens and add support for blocking writes to mounted
> block devices. I'll send that series separately.
>
> The series is based on Christian's vfs tree as of yesterday as there is quite
> some overlap. Patches have passed some reasonable testing - I've tested block
> changes, md, dm, bcache, xfs, btrfs, ext4, swap. This obviously doesn't cover
> everything so I'd like to ask respective maintainers to review / test their
> changes. Thanks! I've pushed out the full branch to:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git bdev_handle
>
> to ease review / testing.
Hmm... Completely Insane Idea(tm): how about turning that thing inside out and
having your bdev_open_by... return an actual opened struct file?
After all, we do that for sockets and pipes just fine and that's a whole lot
hotter area.
Suppose we leave blkdev_open()/blkdev_release() as-is. No need to mess with
what we have for normal opened files for block devices. And have block_open_by_dev()
that would find bdev, etc., same yours does and shove it into anon file.
Paired with plain fput() - no need to bother with new primitives for closing.
With a helper returning I_BDEV(bdev_file_inode(file)) to get from those to bdev.
NOTE: I'm not suggesting replacing ->s_bdev with struct file * if we do that -
we want that value cached, obviously. Just store both...
Not saying it's a good idea, but... might be interesting to look into.
Comments?
next prev parent reply other threads:[~2023-08-25 2:23 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-11 11:04 [dm-devel] [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle Jan Kara
2023-08-11 11:04 ` [Drbd-dev] " Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` [f2fs-dev] " Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` [PATCH 01/29] block: Provide bdev_open_* functions Jan Kara
2023-08-11 11:04 ` [PATCH 02/29] block: Use bdev_open_by_dev() in blkdev_open() Jan Kara
2023-08-11 12:25 ` Christoph Hellwig
2023-08-14 13:51 ` Jan Kara
2023-08-25 1:14 ` Al Viro
2023-08-11 11:04 ` [PATCH 03/29] block: Use bdev_open_by_dev() in disk_scan_partitions() and blkdev_bszset() Jan Kara
2023-08-11 11:04 ` [PATCH 04/29] drdb: Convert to use bdev_open_by_path() Jan Kara
2023-08-11 11:04 ` [Drbd-dev] " Jan Kara
2023-08-11 11:04 ` [PATCH 05/29] pktcdvd: Convert to bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 06/29] rnbd-srv: Convert to use bdev_open_by_path() Jan Kara
2023-08-11 11:04 ` [PATCH 07/29] xen/blkback: Convert to bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 08/29] zram: Convert to use bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 09/29] bcache: Convert to bdev_open_by_path() Jan Kara
2023-08-21 1:06 ` Eric Wheeler
2023-08-21 17:50 ` Jan Kara
2023-08-21 18:54 ` Eric Wheeler
2023-08-23 10:10 ` Coly Li
2023-08-11 11:04 ` [dm-devel] [PATCH 10/29] dm: Convert to bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` [PATCH 11/29] md: " Jan Kara
2023-08-13 15:54 ` Song Liu
2023-08-14 13:37 ` Jan Kara
2023-08-11 11:04 ` [PATCH 12/29] mtd: block2mtd: Convert to bdev_open_by_dev/path() Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` [PATCH 13/29] nvmet: Convert to bdev_open_by_path() Jan Kara
2023-08-11 11:04 ` [PATCH 14/29] s390/dasd: " Jan Kara
2023-08-11 11:04 ` [PATCH 15/29] scsi: target: " Jan Kara
2023-08-11 11:04 ` [PATCH 16/29] PM: hibernate: Convert to bdev_open_by_dev() Jan Kara
2023-08-11 16:57 ` Rafael J. Wysocki
2023-08-11 11:04 ` [PATCH 17/29] PM: hibernate: Drop unused snapshot_test argument Jan Kara
2023-08-11 16:58 ` Rafael J. Wysocki
2023-08-11 11:04 ` [PATCH 18/29] mm/swap: Convert to use bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 19/29] fs: Convert to bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 20/29] btrfs: Convert to bdev_open_by_path() Jan Kara
2023-08-11 11:04 ` [PATCH 21/29] erofs: Convert to use bdev_open_by_path() Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` [PATCH 22/29] ext4: Convert to bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 23/29] f2fs: Convert to bdev_open_by_dev/path() Jan Kara
2023-08-11 11:04 ` [f2fs-dev] " Jan Kara
2023-08-11 11:04 ` [PATCH 24/29] jfs: Convert to bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 25/29] nfs/blocklayout: Convert to use bdev_open_by_dev/path() Jan Kara
2023-08-11 11:04 ` [PATCH 26/29] ocfs2: Convert to use bdev_open_by_dev() Jan Kara
2023-08-11 11:04 ` [PATCH 27/29] reiserfs: Convert to bdev_open_by_dev/path() Jan Kara
2023-08-11 11:04 ` Jan Kara
2023-08-11 11:04 ` [PATCH 28/29] xfs: Convert to bdev_open_by_path() Jan Kara
2023-08-14 10:27 ` Daniel Gomez
2023-08-14 13:43 ` Jan Kara
2023-08-11 11:05 ` [PATCH 29/29] block: Remove blkdev_get_by_*() functions Jan Kara
2023-08-11 12:27 ` [dm-devel] [PATCH v2 0/29] block: Make blkdev_get_by_*() return handle Christoph Hellwig
2023-08-11 12:27 ` [Drbd-dev] " Christoph Hellwig
2023-08-11 12:27 ` Christoph Hellwig
2023-08-11 12:27 ` Christoph Hellwig
2023-08-11 12:27 ` [f2fs-dev] " Christoph Hellwig
2023-08-11 12:27 ` Christoph Hellwig
2023-08-11 12:27 ` Christoph Hellwig
2023-08-25 1:58 ` Al Viro [this message]
2023-08-25 1:58 ` [Drbd-dev] " Al Viro
2023-08-25 1:58 ` Al Viro
2023-08-25 1:58 ` Al Viro
2023-08-25 1:58 ` [f2fs-dev] " Al Viro
2023-08-25 1:58 ` Al Viro
2023-08-25 1:58 ` Al Viro
2023-08-25 13:47 ` [dm-devel] " Jan Kara
2023-08-25 13:47 ` [Drbd-dev] " Jan Kara
2023-08-25 13:47 ` Jan Kara
2023-08-25 13:47 ` Jan Kara
2023-08-25 13:47 ` [f2fs-dev] " Jan Kara
2023-08-25 13:47 ` Jan Kara
2023-08-25 13:47 ` Jan Kara
2023-08-26 2:28 ` [dm-devel] " Al Viro
2023-08-26 2:28 ` [Drbd-dev] " Al Viro
2023-08-26 2:28 ` Al Viro
2023-08-26 2:28 ` Al Viro
2023-08-26 2:28 ` [f2fs-dev] " Al Viro
2023-08-26 2:28 ` Al Viro
2023-08-26 2:28 ` Al Viro
2023-08-28 14:27 ` [dm-devel] " Christoph Hellwig
2023-08-28 14:27 ` [Drbd-dev] " Christoph Hellwig
2023-08-28 14:27 ` Christoph Hellwig
2023-08-28 14:27 ` Christoph Hellwig
2023-08-28 14:27 ` [f2fs-dev] " Christoph Hellwig
2023-08-28 14:27 ` Christoph Hellwig
2023-08-28 14:27 ` Christoph Hellwig
2023-08-28 13:20 ` [dm-devel] " Christian Brauner
2023-08-28 13:20 ` [Drbd-dev] " Christian Brauner
2023-08-28 13:20 ` Christian Brauner
2023-08-28 13:20 ` Christian Brauner
2023-08-28 13:20 ` [f2fs-dev] " Christian Brauner
2023-08-28 13:20 ` Christian Brauner
2023-08-28 13:20 ` Christian Brauner
2023-08-28 14:22 ` [dm-devel] " Christoph Hellwig
2023-08-28 14:22 ` [Drbd-dev] " Christoph Hellwig
2023-08-28 14:22 ` Christoph Hellwig
2023-08-28 14:22 ` Christoph Hellwig
2023-08-28 14:22 ` [f2fs-dev] " Christoph Hellwig
2023-08-28 14:22 ` Christoph Hellwig
2023-08-28 14:22 ` Christoph Hellwig
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=20230825015843.GB95084@ZenIV \
--to=viro@zeniv.linux.org.uk \
--cc=agk@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=anna@kernel.org \
--cc=borntraeger@linux.ibm.com \
--cc=chao@kernel.org \
--cc=djwong@kernel.org \
--cc=dm-devel@redhat.com \
--cc=drbd-dev@lists.linbit.com \
--cc=dsterba@suse.com \
--cc=haris.iqbal@ionos.com \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=jaegeuk@kernel.org \
--cc=jfs-discussion@lists.sourceforge.net \
--cc=jinpu.wang@ionos.com \
--cc=joern@lazybastard.org \
--cc=joseph.qi@linux.alibaba.com \
--cc=kent.overstreet@gmail.com \
--cc=linux-bcache@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-nilfs@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=minchan@kernel.org \
--cc=ocfs2-devel@oss.oracle.com \
--cc=reiserfs-devel@vger.kernel.org \
--cc=senozhatsky@chromium.org \
--cc=shaggy@kernel.org \
--cc=snitzer@kernel.org \
--cc=song@kernel.org \
--cc=svens@linux.ibm.com \
--cc=target-devel@vger.kernel.org \
--cc=trond.myklebust@hammerspace.com \
--cc=tytso@mit.edu \
--cc=xen-devel@lists.xenproject.org \
--cc=xiang@kernel.org \
/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.