[systemd-devel] [PATCH 2/2] fsckd daemon for inter-fsckd communication
Zbigniew Jędrzejewski-Szmek
zbyszek at in.waw.pl
Wed Feb 4 09:04:43 PST 2015
On Wed, Feb 04, 2015 at 05:50:29PM +0100, Didier Roche wrote:
> Le 04/02/2015 17:24, Zbigniew Jędrzejewski-Szmek a écrit :
>
> Thanks again for the quick review! Fixed if not commented (sorry,
> some issues were back due to the refactoring).
> >On Wed, Feb 04, 2015 at 05:06:45PM +0100, Didier Roche wrote:
> >>+typedef struct Clients {
> >>+ struct Manager *manager;
> >>+ int fd;
> >>+ dev_t devnum;
> >>+ size_t cur;
> >>+ size_t max;
> >>+ int pass;
> >>+ double percent;
> >>+ size_t buflen;
> >>+
> >>+ LIST_FIELDS(struct Clients, clients);
> >>+} Clients;
> >Would be better to call this Client.
> >
> >>+typedef struct Manager {
> >>+ sd_event *event;
> >>+ Clients *clients;
> >But still 'Client *clients' here.
>
> Right, I can't decide (due to the list) what's the best one, what do
> you think?
We use singular in other cases like this.
> >>+ if (!client)
> >>+ return log_oom();
> >>+ client->fd = new_client_fd;
> >>+ client->manager = m;
> >>+ LIST_PREPEND(clients, m->clients, client);
> >>+ r = sd_event_add_io(m->event, NULL, client->fd, EPOLLIN, progress_handler, client);
> >>+ if (r < 0) {
> >>+ remove_client(&(m->clients), client);
> >>+ return r;
> >>+ }
> >I think you can do this in opposite order, and then the clean-up will
> >not be necessary.
> I need to delete the client item and close the new fd (which is part
> of remove_client()), and I can't assign the add_io event before the
> client instantiated. So, it will be another free() + safe_close()
> rather then remove_client(). Does it makes sense still to add this?
I guess no.
Zbyszek
More information about the systemd-devel
mailing list