Skip to content

Commit 59f2f9e

Browse files
authored
Merge branch 'master' into build-fixes
2 parents 498a124 + 26019a2 commit 59f2f9e

File tree

10 files changed

+61
-29
lines changed

10 files changed

+61
-29
lines changed

cbt/Makefile.am

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ sbin_PROGRAMS = cbt-util
99
noinst_LTLIBRARIES = libcbtutil.la
1010

1111
libcbtutil_la_SOURCES = cbt-util.c
12-
libcbtutil_la_LIBADD = -luuid
12+
13+
libcbtutil_la_LIBADD = -luuid
1314

1415
cbt_util_SOURCES = main.c
15-
cbt_util_LDADD = -lrt libcbtutil.la
16+
cbt_util_LDADD = libcbtutil.la
1617

1718
clean-local:
1819
-rm -rf *.gc??

control/tap-ctl.c

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,21 @@ tap_cli_list(int argc, char **argv)
162162
if (pid >= 0 && entry->pid != pid)
163163
continue;
164164

165-
if (type && entry->type && strcmp(entry->type, type))
166-
continue;
165+
if (type) {
166+
if (!entry->type)
167+
continue;
167168

168-
if (file && entry->path && strcmp(entry->path, file))
169-
continue;
169+
if (strcmp(entry->type, type))
170+
continue;
171+
}
172+
173+
if (file) {
174+
if (!entry->path)
175+
continue;
176+
177+
if (strcmp(entry->path, file))
178+
continue;
179+
}
170180

171181
if (tty)
172182
tap_cli_list_row(entry);

drivers/tapdisk-vbd.c

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ char* op_strings[TD_OPS_END] ={"read", "write", "block_status"};
7474

7575
static void tapdisk_vbd_complete_vbd_request(td_vbd_t *, td_vbd_request_t *);
7676
static int tapdisk_vbd_queue_ready(td_vbd_t *);
77-
static void tapdisk_vbd_check_queue_state(td_vbd_t *);
77+
static void tapdisk_vbd_check_complete_requests(td_vbd_t *);
78+
static void tapdisk_vbd_check_requests_for_issue(td_vbd_t *);
7879

7980
static bool log=true;
8081

@@ -944,12 +945,13 @@ tapdisk_vbd_pause(td_vbd_t *vbd)
944945
if (vbd->nbdserver)
945946
tapdisk_nbdserver_pause(vbd->nbdserver, log);
946947

948+
list_for_each_entry(blkif, &vbd->rings, entry)
949+
tapdisk_xenblkif_suspend(blkif);
950+
947951
err = tapdisk_vbd_quiesce_queue(vbd);
948952
if (err)
949953
return err;
950954

951-
list_for_each_entry(blkif, &vbd->rings, entry)
952-
tapdisk_xenblkif_suspend(blkif);
953955

954956
tapdisk_vbd_close_vdi(vbd);
955957

@@ -1062,7 +1064,7 @@ tapdisk_vbd_request_timeout(td_vbd_request_t *vreq)
10621064
}
10631065

10641066
static void
1065-
tapdisk_vbd_check_queue_state(td_vbd_t *vbd)
1067+
tapdisk_vbd_check_complete_requests(td_vbd_t *vbd)
10661068
{
10671069
td_vbd_request_t *vreq, *tmp;
10681070
struct timeval now;
@@ -1071,25 +1073,36 @@ tapdisk_vbd_check_queue_state(td_vbd_t *vbd)
10711073
tapdisk_vbd_for_each_request(vreq, tmp, &vbd->failed_requests)
10721074
if (__tapdisk_vbd_request_timeout(vreq, &now))
10731075
tapdisk_vbd_complete_vbd_request(vbd, vreq);
1076+
}
10741077

1078+
static void
1079+
tapdisk_vbd_check_requests_for_issue(td_vbd_t *vbd)
1080+
{
10751081
if (!list_empty(&vbd->new_requests) ||
10761082
!list_empty(&vbd->failed_requests))
10771083
tapdisk_vbd_issue_requests(vbd);
1078-
10791084
}
10801085

10811086
void
10821087
tapdisk_vbd_check_state(td_vbd_t *vbd)
10831088
{
10841089
struct td_xenblkif *blkif;
10851090

1091+
/* Don't check if we're already quiesced */
1092+
if (td_flag_test(vbd->state, TD_VBD_QUIESCED))
1093+
return;
1094+
10861095
/*
10871096
* TODO don't ignore return value
10881097
*/
10891098
list_for_each_entry(blkif, &vbd->rings, entry)
10901099
tapdisk_xenblkif_ring_stats_update(blkif);
10911100

1092-
tapdisk_vbd_check_queue_state(vbd);
1101+
tapdisk_vbd_check_complete_requests(vbd);
1102+
1103+
if (!td_flag_test(vbd->state, TD_VBD_QUIESCE_REQUESTED) &&
1104+
!td_flag_test(vbd->state, TD_VBD_PAUSE_REQUESTED))
1105+
tapdisk_vbd_check_requests_for_issue(vbd);
10931106

10941107
if (td_flag_test(vbd->state, TD_VBD_QUIESCE_REQUESTED))
10951108
tapdisk_vbd_quiesce_queue(vbd);
@@ -1344,7 +1357,7 @@ tapdisk_vbd_forward_request(td_request_t treq)
13441357
if (tapdisk_vbd_queue_ready(vbd))
13451358
__tapdisk_vbd_reissue_td_request(vbd, image, treq);
13461359
else
1347-
__tapdisk_vbd_complete_td_request(vbd, vreq, treq, -EBUSY);
1360+
td_complete_request(treq, -EBUSY);
13481361
}
13491362

13501363
int
@@ -1672,16 +1685,19 @@ tapdisk_vbd_issue_new_requests(td_vbd_t *vbd)
16721685
int
16731686
tapdisk_vbd_recheck_state(td_vbd_t *vbd)
16741687
{
1688+
int err = 0;
1689+
16751690
if (list_empty(&vbd->new_requests))
16761691
return 0;
16771692

16781693
if (td_flag_test(vbd->state, TD_VBD_QUIESCED) ||
16791694
td_flag_test(vbd->state, TD_VBD_QUIESCE_REQUESTED))
16801695
return 0;
16811696

1682-
tapdisk_vbd_issue_new_requests(vbd);
1697+
err = tapdisk_vbd_issue_requests(vbd);
16831698

1684-
return 1;
1699+
/* If we have errors stop checking in this cycle */
1700+
return err ? 0 : 1;
16851701
}
16861702

16871703
static int

mockatests/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ACLOCAL_AMFLAGS = -I m4
22

3-
CFLAGS:=$(filter-out -fsanitize=leak,$(LDFLAGS))
3+
CFLAGS:=$(filter-out -fsanitize=leak,$(CFLAGS))
44
LDFLAGS:=$(filter-out -static-liblsan,$(LDFLAGS))
55

66
SUBDIRS = wrappers

mockatests/cbt/Makefile.am

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CFLAGS:=$(filter-out -fsanitize=leak,$(LDFLAGS))
1+
CFLAGS:=$(filter-out -fsanitize=leak,$(CFLAGS))
22
LDFLAGS:=$(filter-out -static-liblsan,$(LDFLAGS))
33

44
AM_CFLAGS = -Wall
@@ -11,9 +11,10 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/cbt -I../include
1111
check_PROGRAMS = test-cbt-util
1212
TESTS = test-cbt-util
1313

14+
test_cbt_util_LDADD = $(top_srcdir)/cbt/libcbtutil.la ../wrappers/libwrappers.la
15+
1416
test_cbt_util_SOURCES = test-cbt-util.c test-cbt-util-commands.c test-cbt-util-set.c test-cbt-util-get.c test-cbt-util-create.c test-cbt-util-coalesce.c
15-
test_cbt_util_LDFLAGS = $(top_srcdir)/cbt/libcbtutil.la -lcmocka -luuid
16-
test_cbt_util_LDFLAGS += ../wrappers/libwrappers.la
17+
test_cbt_util_LDFLAGS = -lcmocka
1718
test_cbt_util_LDFLAGS += -Wl,--wrap=fopen,--wrap=fclose
1819
test_cbt_util_LDFLAGS += -Wl,--wrap=malloc,--wrap=free,--wrap=calloc
1920
# Need to wrap both of these as rpmbuild/mock set -D_FORTIFY_SOURCE=2

mockatests/control/Makefile.am

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CFLAGS:=$(filter-out -fsanitize=leak,$(LDFLAGS))
1+
CFLAGS:=$(filter-out -fsanitize=leak,$(CFLAGS))
22
LDFLAGS:=$(filter-out -static-liblsan,$(LDFLAGS))
33

44
AM_CFLAGS = -Wall
@@ -11,11 +11,11 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/control -I../include
1111
check_PROGRAMS = test-control
1212
TESTS = test-control
1313

14-
test_control_SOURCES = test-control.c test-tap-ctl-free.c test-tap-ctl-allocate.c test-tap-ctl-close.c test-tap-ctl-list.c control-wrappers.c util.c
15-
test_control_LDFLAGS = $(top_srcdir)/control/libblktapctl.la -lcmocka -luuid
14+
test_control_LDADD = $(top_srcdir)/control/libblktapctl.la ../wrappers/libwrappers.la
1615

16+
test_control_SOURCES = test-control.c test-tap-ctl-free.c test-tap-ctl-allocate.c test-tap-ctl-close.c test-tap-ctl-list.c control-wrappers.c util.c
17+
test_control_LDFLAGS = -lcmocka
1718
test_control_LDFLAGS += -static-libtool-libs
18-
test_control_LDFLAGS += ../wrappers/libwrappers.la
1919
# Would be good to use the cmocka malloc wraps but looks like maybe strdup doesn't call malloc
2020
#test_control_LDFLAGS += -Wl,--wrap=malloc,--wrap=free
2121
test_control_LDFLAGS += -Wl,--wrap=socket,--wrap=connect,--wrap=read,--wrap=select,--wrap=write,--wrap=fdopen

mockatests/drivers/Makefile.am

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CFLAGS:=$(filter-out -fsanitize=leak,$(LDFLAGS))
1+
CFLAGS:=$(filter-out -fsanitize=leak,$(CFLAGS))
22
LDFLAGS:=$(filter-out -static-liblsan,$(LDFLAGS))
33

44
AM_CFLAGS = -Wall
@@ -11,8 +11,10 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/drivers -I../include
1111
check_PROGRAMS = test-drivers
1212
TESTS = test-drivers
1313

14+
test_drivers_LDADD = $(top_srcdir)/drivers/libtapdisk.la
15+
1416
test_drivers_SOURCES = test-drivers.c test-tapdisk-stats.c test-tapdisk-vbd.c vbd-wrappers.c test-tapdisk-nbdserver.c
15-
test_drivers_LDFLAGS = $(top_srcdir)/drivers/libtapdisk.la -lcmocka -luuid
17+
test_drivers_LDFLAGS = -lcmocka
1618
test_drivers_LDFLAGS += -Wl,--wrap=tapdisk_image_check_request
1719
test_drivers_LDFLAGS += -Wl,--wrap=td_queue_block_status
1820
test_drivers_LDFLAGS += -Wl,--wrap=send

mockatests/vhd/Makefile.am

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CFLAGS:=$(filter-out -fsanitize=leak,$(LDFLAGS))
1+
CFLAGS:=$(filter-out -fsanitize=leak,$(CFLAGS))
22
LDFLAGS:=$(filter-out -static-liblsan,$(LDFLAGS))
33

44
AM_CFLAGS = -Wall
@@ -12,8 +12,10 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/cbt -I../include
1212
check_PROGRAMS = test-vhd-util
1313
TESTS = test-vhd-util
1414

15+
test_vhd_util_LDADD = $(top_srcdir)/vhd/lib/libvhd.la
16+
1517
test_vhd_util_SOURCES = test-vhd-util.c test-vhd-util-snapshot.c test-canonpath.c test-vhd-util-utilities.c vhd-wrappers.c
16-
test_vhd_util_LDFLAGS = $(top_srcdir)/vhd/lib/libvhd.la -lcmocka -luuid
18+
test_vhd_util_LDFLAGS = -lcmocka
1719
test_vhd_util_LDFLAGS += -static-libtool-libs
1820
test_vhd_util_LDFLAGS += -Wl,--wrap=free,--wrap=malloc,--wrap=realloc
1921
test_vhd_util_LDFLAGS += -Wl,--wrap=canonpath

mockatests/wrappers/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CFLAGS:=$(filter-out -fsanitize=leak,$(LDFLAGS))
1+
CFLAGS:=$(filter-out -fsanitize=leak,$(CFLAGS))
22
LDFLAGS:=$(filter-out -static-liblsan,$(LDFLAGS))
33

44
AM_CFLAGS = -Wall -g -Og

vhd/lib/libvhd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2905,7 +2905,7 @@ vhd_initialize_header_parent_name(vhd_context_t *ctx, const char *parent_path)
29052905
cd = iconv_open(UTF_16BE, "ASCII");
29062906
if (cd == (iconv_t)-1) {
29072907
err = -errno;
2908-
goto out;
2908+
return err;
29092909
}
29102910

29112911
ppath = strdup(parent_path);

0 commit comments

Comments
 (0)