--- plugins/example2/example2.c | 4 ++++ plugins/example3/example3.c | 4 ++++ plugins/file/file.c | 1 + plugins/streaming/streaming.c | 1 + 4 files changed, 10 insertions(+) diff --git a/plugins/example2/example2.c b/plugins/example2/example2.c index a9a0e37..0fd0421 100644 --- a/plugins/example2/example2.c +++ b/plugins/example2/example2.c @@ -193,6 +193,10 @@ static struct nbdkit_plugin plugin = { .close = example2_close, .get_size = example2_get_size, .pread = example2_pread, + /* In this plugin, errno is preserved properly along error return + * paths from failed system calls. + */ + .errno_is_preserved = 1, }; NBDKIT_REGISTER_PLUGIN(plugin) diff --git a/plugins/example3/example3.c b/plugins/example3/example3.c index 0c215ab..8ac39ae 100644 --- a/plugins/example3/example3.c +++ b/plugins/example3/example3.c @@ -214,6 +214,10 @@ static struct nbdkit_plugin plugin = { .pread = example3_pread, .pwrite = example3_pwrite, .flush = example3_flush, + /* In this plugin, errno is preserved properly along error return + * paths from failed system calls. + */ + .errno_is_preserved = 1, }; NBDKIT_REGISTER_PLUGIN(plugin) diff --git a/plugins/file/file.c b/plugins/file/file.c index 655fba7..bfa20fb 100644 --- a/plugins/file/file.c +++ b/plugins/file/file.c @@ -336,6 +336,7 @@ static struct nbdkit_plugin plugin = { .pwrite = file_pwrite, .zero = file_zero, .flush = file_flush, + .errno_is_preserved = 1, }; NBDKIT_REGISTER_PLUGIN(plugin) diff --git a/plugins/streaming/streaming.c b/plugins/streaming/streaming.c index fb2d3ae..c2deeb6 100644 --- a/plugins/streaming/streaming.c +++ b/plugins/streaming/streaming.c @@ -256,6 +256,7 @@ static struct nbdkit_plugin plugin = { .get_size = streaming_get_size, .pwrite = streaming_pwrite, .pread = streaming_pread, + .errno_is_preserved = 1, }; NBDKIT_REGISTER_PLUGIN(plugin) -- 2.10.2