Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


error checking in file close
[palacios.git] / linux_module / iface-file.c
index 10a525d..b446916 100644 (file)
@@ -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);