X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fiface-file.c;h=b446916cd87ec9a7cd6b9816e6d5f3e3f732b01b;hb=c9d14b39d262b076a160cc7533fad3c8ebfd7e79;hp=10a525d50cbc258850dac64b167d9df4f769bda9;hpb=cfedaa152e9e6b3518b547d06fed1df371dc90e8;p=palacios.git diff --git a/linux_module/iface-file.c b/linux_module/iface-file.c index 10a525d..b446916 100644 --- a/linux_module/iface-file.c +++ b/linux_module/iface-file.c @@ -237,7 +237,7 @@ static void * palacios_file_open(const char * path, int mode, void * private_dat strncpy(pfile->path, path, strlen(path)); pfile->guest = guest; - spin_lock_init(&(pfile->lock)); + palacios_spinlock_init(&(pfile->lock)); if (guest == NULL) { list_add(&(pfile->file_node), &(global_files)); @@ -252,10 +252,16 @@ static void * palacios_file_open(const char * path, int mode, void * private_dat static int palacios_file_close(void * file_ptr) { struct palacios_file * pfile = (struct palacios_file *)file_ptr; + if (!pfile) { + return -1; + } + filp_close(pfile->filp, NULL); list_del(&(pfile->file_node)); + palacios_spinlock_deinit(&(pfile->lock)); + palacios_free(pfile->path); palacios_free(pfile);