Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
slash
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
slash
Commits
6b1f16f7
Unverified
Commit
6b1f16f7
authored
Oct 25, 2023
by
Nils Goroll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor out logbuffer_fini_dskreqs
parent
b6d9a9ba
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
16 deletions
+26
-16
fellow_log.c
src/fellow_log.c
+26
-16
No files found.
src/fellow_log.c
View file @
6b1f16f7
...
...
@@ -1920,19 +1920,40 @@ logbuffer_wait_flush_fini(const struct fellow_logbuffer *lbuf)
}
static
void
logbuffer_fini
(
struct
fellow_logbuffer
*
lbuf
)
logbuffer_fini
_dskreqs
(
struct
fellow_logbuffer
*
lbuf
)
{
struct
buddy_returns
*
rets
;
struct
buddy_ptr_extent
alloc
;
struct
buddy_ptr_page
palloc
;
size_t
sz
;
if
(
lbuf
->
dskreqs
!=
NULL
)
{
buddy_alloc_wait_done
(
&
(
*
lbuf
->
dskreqs
)[
0
].
reqs
);
buddy_alloc_wait_done
(
&
(
*
lbuf
->
dskreqs
)[
1
].
reqs
);
sz
=
buddy_rndup
(
lbuf
->
membuddy
,
sizeof
*
lbuf
->
dskreqs
);
alloc
=
BUDDY_PTR_EXTENT
(
lbuf
->
dskreqs
,
sz
);
buddy_return1_ptr_extent
(
lbuf
->
membuddy
,
&
alloc
);
lbuf
->
dskreqs
=
NULL
;
}
else
if
(
lbuf
->
dskreqs_mem
.
reqs
.
magic
==
BUDDY_REQS_MAGIC
)
{
buddy_alloc_wait_done
(
&
lbuf
->
dskreqs_mem
.
reqs
);
lbuf
->
dskreqs_mem
.
reqs
.
magic
=
0
;
}
AZ
(
lbuf
->
dskreqs
);
AZ
(
lbuf
->
dskreqs_mem
.
reqs
.
magic
);
}
static
void
logbuffer_fini
(
struct
fellow_logbuffer
*
lbuf
)
{
struct
buddy_ptr_page
palloc
;
CHECK_OBJ_NOTNULL
(
lbuf
,
FELLOW_LOGBUFFER_MAGIC
);
logbuffer_assert_empty
(
lbuf
);
assert
(
lbuf
->
state
==
LBUF_FINI
);
AZ
(
lbuf
->
regions_to_free
);
logbuffer_fini_dskreqs
(
lbuf
);
if
(
lbuf
->
fdil
.
ioctx
!=
NULL
)
{
(
void
)
fellow_io_log_wait_completions
(
lbuf
->
membuddy
,
...
...
@@ -1942,21 +1963,9 @@ logbuffer_fini(struct fellow_logbuffer *lbuf)
AZ
(
lbuf
->
fdil
.
ioctxp
);
}
rets
=
BUDDY_RETURNS_STK
(
lbuf
->
membuddy
,
2
);
if
(
lbuf
->
dskreqs
!=
NULL
)
{
buddy_alloc_wait_done
(
&
(
*
lbuf
->
dskreqs
)[
0
].
reqs
);
buddy_alloc_wait_done
(
&
(
*
lbuf
->
dskreqs
)[
1
].
reqs
);
sz
=
buddy_rndup
(
lbuf
->
membuddy
,
sizeof
*
lbuf
->
dskreqs
);
alloc
=
BUDDY_PTR_EXTENT
(
lbuf
->
dskreqs
,
sz
);
AN
(
buddy_return_ptr_extent
(
rets
,
&
alloc
));
}
else
if
(
lbuf
->
dskreqs_mem
.
reqs
.
magic
==
BUDDY_REQS_MAGIC
)
buddy_alloc_wait_done
(
&
lbuf
->
dskreqs_mem
.
reqs
);
logbuffer_wait_flush_fini
(
lbuf
);
TAKE
(
palloc
,
lbuf
->
alloc
);
AN
(
buddy_return_ptr_page
(
rets
,
&
palloc
));
buddy_return
(
rets
);
buddy_return1_ptr_page
(
lbuf
->
membuddy
,
&
palloc
);
memset
(
lbuf
,
0
,
sizeof
*
lbuf
);
}
...
...
@@ -2281,6 +2290,7 @@ logbuffer_alloc_some(struct fellow_logbuffer *lbuf,
buddy_alloc_async_ready
(
&
lbuf
->
dskreqs_mem
.
reqs
))
{
alloc
=
buddy_get_ptr_extent
(
&
lbuf
->
dskreqs_mem
.
reqs
,
0
);
buddy_alloc_wait_done
(
&
lbuf
->
dskreqs_mem
.
reqs
);
lbuf
->
dskreqs_mem
.
reqs
.
magic
=
0
;
AN
(
alloc
.
ptr
);
assert
(
alloc
.
size
>=
sizeof
*
lbuf
->
dskreqs
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment