The pull request you sent on Fri, 26 Jun 2020 15:28:47 -0400:
> git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
> tags/for-5.8/dm-fixes
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/5e8eed279f280d6ad4cf59b3330d5d6d7b9de733
Thank you!
--
De
On Sat, 27 Jun 2020, Dave Chinner wrote:
> On Fri, Jun 26, 2020 at 11:02:19AM -0400, Mikulas Patocka wrote:
> > Hi
> >
> > I suggest to join memalloc_noio and memalloc_nofs into just one flag that
> > prevents both filesystem recursion and i/o recursion.
> >
> > Note that any I/O can recurse
bio_associate_blkg_from_page is a special purpose helper for swap bios
that doesn't need access to bio internals. Move it to the swap code
instead of having it in bio.c.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 26 --
include/linux/bio.h | 7 ---
m
blkcg_bio_issue_check is a giant inline function that does three entirely
different things. Factor out the blk-cgroup related bio initalization
into a new helper, and the open code the sequence in the only caller,
relying on the fact that all the actual functionality is stubbed out for
non-cgroup
Merge __bio_associate_blkg into the only caller, which allows to slightly
reduce the RCU crticial section and better explain the code flow.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 45 +
1 file changed, 13 insertions(+), 32 deletions(-)
diff
cgroup_rstat_updated is only used by core block code, no need to
export it.
Signed-off-by: Christoph Hellwig
---
kernel/cgroup/rstat.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c
index b6397a186ce9c8..d51175cedfca4f 100644
--- a/kernel/cgroup/
bio_clone_blkg_association is supposed to clone the associatation, but
actually ends up doing a search with a tryget. As we know we have a
reference on the source cgroup just get an unconditional additional
reference to it and call it a day. That also removes the need for
a RCU critical section.
This is purely a sanity check for grave programming errors. Remove it
to simplify further work in this area.
Signed-off-by: Christoph Hellwig
---
include/linux/blk-cgroup.h | 15 +--
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/include/linux/blk-cgroup.h b/include/l
The only thing in blkcg_bio_issue_check that needs to be under
rcu_read_lock is blk_throtl_bio, so move the locking there.
Signed-off-by: Christoph Hellwig
---
block/blk-throttle.c | 3 ++-
include/linux/blk-cgroup.h | 2 --
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/bl
Keep the cgroup code together.
Signed-off-by: Christoph Hellwig
---
block/bio.c| 75 ---
block/blk-cgroup.c | 103 -
include/linux/blk-cgroup.h | 30 ---
3 files changed, 101 insertions(+), 107 deletion
Hi all,
while looking into another "project" I ended up wading through the
blkcq code for research and found a bunch of lose ends. So here is
a bunch of drive-by cleanups for the code.
Diffstat:
block/bio.c| 143 +--
block/blk-cgroup.c |
By moving the initial blkg lookup into blkg_tryget_closest we get
a nicely self contained routines that does all the RCU locking.
Signed-off-by: Christoph Hellwig
---
block/blk-cgroup.c | 33 ++---
1 file changed, 14 insertions(+), 19 deletions(-)
diff --git a/block/
bios must have a valid block group by the time they are submitted.
Signed-off-by: Christoph Hellwig
---
block/blk-throttle.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index 9d00f62c05ecdf..ad37043297ed58 100644
--- a/block/blk
No good reason to keep these two functions split.
Signed-off-by: Christoph Hellwig
---
block/blk-cgroup.c | 49 +-
1 file changed, 18 insertions(+), 31 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index bb0607bfd771cd..6aedb73ffbf
bio_uninit is the proper API to clean up a BIO that has been allocated
on stack or inside a structure that doesn't come from the BIO allocator.
Switch dm to use that instead of bio_disassociate_blkg, which really is
an implementation detail. Note that the bio_uninit calls are also moved
to the two
The root_blkg is only torn down at the very end of removing a queue.
So in the I/O submission path is always has a life reference and we
can just grab another one using blkg_get instead of doing a tryget
and parent walk that won't lead anywhere.
Signed-off-by: Christoph Hellwig
---
block/blk-cgr
bio_disassociate_blkg has two callers, of which one immediately assigns
a new value to >bi_blkg. Just open code the function in the two callers.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 27 ---
include/linux/bio.h | 2 --
2 files changed, 8 insertions(
17 matches
Mail list logo