From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Thu, 6 Jun 2019 10:41:06 +0100 From: "Dr. David Alan Gilbert" Message-ID: <20190606094105.GH2788@work-vm> References: <1559695356-75503-1-git-send-email-bo.liu@linux.alibaba.com> <1559695356-75503-6-git-send-email-bo.liu@linux.alibaba.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1559695356-75503-6-git-send-email-bo.liu@linux.alibaba.com> Subject: Re: [Virtio-fs] [PATCH 5/5] virtiofsd: add helper for lo_data cleanup List-Id: Development discussions about virtio-fs List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Liu Bo Cc: virtio-fs@redhat.com * Liu Bo (bo.liu@linux.alibaba.com) wrote: > This offers an helper function for lo_data's cleanup. > > Signed-off-by: Liu Bo That's ok, but will need updating when you do a new version of the lo.source. Dave > --- > contrib/virtiofsd/passthrough_ll.c | 34 +++++++++++++++++++--------------- > 1 file changed, 19 insertions(+), 15 deletions(-) > > diff --git a/contrib/virtiofsd/passthrough_ll.c b/contrib/virtiofsd/passthrough_ll.c > index 649991e..73ca09f 100644 > --- a/contrib/virtiofsd/passthrough_ll.c > +++ b/contrib/virtiofsd/passthrough_ll.c > @@ -2205,6 +2205,24 @@ static gboolean lo_key_equal(gconstpointer a, gconstpointer b) > la->dev == lb->dev; > } > > +static void fuse_lo_data_cleanup(struct lo_data *lo, bool free_source) > +{ > + if (lo->inodes) > + g_hash_table_destroy(lo->inodes); > + lo_map_destroy(&lo->fd_map); > + lo_map_destroy(&lo->dirp_map); > + lo_map_destroy(&lo->ino_map); > + > + if (lo->proc_self_fd >= 0) { > + close(lo->proc_self_fd); > + } > + > + if (lo->root.fd >= 0) > + close(lo->root.fd); > + > + if (free_source) > + free((char *)lo->source); > +} > > int main(int argc, char *argv[]) > { > @@ -2325,21 +2343,7 @@ err_out2: > err_out1: > fuse_opt_free_args(&args); > > - if (lo.inodes) > - g_hash_table_destroy(lo.inodes); > - lo_map_destroy(&lo.fd_map); > - lo_map_destroy(&lo.dirp_map); > - lo_map_destroy(&lo.ino_map); > - > - if (lo.proc_self_fd >= 0) { > - close(lo.proc_self_fd); > - } > - > - if (lo.root.fd >= 0) > - close(lo.root.fd); > - > - if (free_source) > - free((char *)lo.source); > + fuse_lo_data_cleanup(&lo, free_source); > > return ret ? 1 : 0; > } > -- > 1.8.3.1 > > _______________________________________________ > Virtio-fs mailing list > Virtio-fs@redhat.com > https://www.redhat.com/mailman/listinfo/virtio-fs -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK