From: Ruslan Garipov ruslanngaripov@gmail.com
This lists all fields of the `struct fd_ops' when object of that type -- handler_fd_ops in server/signal.c -- is being initialized.
It looks like field list in initialization of the handler_fd_ops in server/signal.c was out-of-sync for a long time. Take a look, for example, on patches ad1e0609a0f (server: Get rid of no loner used cancel_async from fd_ops., 2016-12-01) (which removed "reference" to the cancel_async field correctly, but did not add "references" to the read and write fields, for example), or 837b39b2028 (server: Add read and write fd member functions., 2015-05-05) (which updated `struct fd_ops' but did not change initialization of the handler_fd_ops at all).
Because the main purpose of initialization of the handler_fd_ops made in server/signal.c is to assign address of the handler_poll_event() function to the poll_event field, while making all other fields NULLed, lacking some fields in that initialization is not an error according to C standard:
6.7.11 Initialization
11 ... If an object that has static or thread storage duration is not initialized explicitly, or any object is initialized with an empty initializer, then it is subject to default initialization, which initializes an object as follows:
- if it has pointer type, it is initialized to a null pointer;
... 22 If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, or fewer characters in a string literal used to initialize an array of known size than there are elements in the array, the remainder of the aggregate is subject to default initialization.
But to maintain code consistency I believe initialization of the handler_fd_ops object should enumerate all fields of the `struct fd_ops' type.
No functional changes intended.
Signed-off-by: Ruslan Garipov ruslanngaripov@gmail.com --- server/signal.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/server/signal.c b/server/signal.c index 19b76d44c16..45a516f4599 100644 --- a/server/signal.c +++ b/server/signal.c @@ -84,9 +84,14 @@ static const struct fd_ops handler_fd_ops = { NULL, /* get_poll_events */ handler_poll_event, /* poll_event */ - NULL, /* flush */ NULL, /* get_fd_type */ + NULL, /* read */ + NULL, /* write */ + NULL, /* flush */ + NULL, /* get_file_info */ + NULL, /* get_volume_info */ NULL, /* ioctl */ + NULL, /* cancel_async */ NULL, /* queue_async */ NULL /* reselect_async */ };