mirror of https://github.com/xemu-project/xemu.git
9pfs: add cleanup operation for handle backend driver
In the init operation of handle backend dirver, it allocates a handle_data struct and opens a mount file. We should free these resources when the 9pfs device is unrealized. This is what this patch does. Signed-off-by: Li Qiang <liq3ea@gmail.com> Reviewed-by: Greg Kurz <groug@kaod.org> Signed-off-by: Greg Kurz <groug@kaod.org>
This commit is contained in:
parent
702dbcc274
commit
971f406b77
|
@ -649,6 +649,14 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void handle_cleanup(FsContext *ctx)
|
||||||
|
{
|
||||||
|
struct handle_data *data = ctx->private;
|
||||||
|
|
||||||
|
close(data->mountfd);
|
||||||
|
g_free(data);
|
||||||
|
}
|
||||||
|
|
||||||
static int handle_parse_opts(QemuOpts *opts, struct FsDriverEntry *fse)
|
static int handle_parse_opts(QemuOpts *opts, struct FsDriverEntry *fse)
|
||||||
{
|
{
|
||||||
const char *sec_model = qemu_opt_get(opts, "security_model");
|
const char *sec_model = qemu_opt_get(opts, "security_model");
|
||||||
|
@ -671,6 +679,7 @@ static int handle_parse_opts(QemuOpts *opts, struct FsDriverEntry *fse)
|
||||||
FileOperations handle_ops = {
|
FileOperations handle_ops = {
|
||||||
.parse_opts = handle_parse_opts,
|
.parse_opts = handle_parse_opts,
|
||||||
.init = handle_init,
|
.init = handle_init,
|
||||||
|
.cleanup = handle_cleanup,
|
||||||
.lstat = handle_lstat,
|
.lstat = handle_lstat,
|
||||||
.readlink = handle_readlink,
|
.readlink = handle_readlink,
|
||||||
.close = handle_close,
|
.close = handle_close,
|
||||||
|
|
Loading…
Reference in New Issue