]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/char/vmlogrdr.c
Merge master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6-omap-h63xx.git] / drivers / s390 / char / vmlogrdr.c
index b87d3b019936d7a215710a3e1b6f7c3419e90482..a5a00e9ae4d01aacf3407a6e813f2ce3fb15623e 100644 (file)
@@ -125,7 +125,7 @@ static struct vmlogrdr_priv_t sys_ser[] = {
          .recording_name = "EREP",
          .minor_num      = 0,
          .buffer_free    = 1,
-         .priv_lock      = SPIN_LOCK_UNLOCKED,
+         .priv_lock      = __SPIN_LOCK_UNLOCKED(sys_ser[0].priv_lock),
          .autorecording  = 1,
          .autopurge      = 1,
        },
@@ -134,7 +134,7 @@ static struct vmlogrdr_priv_t sys_ser[] = {
          .recording_name = "ACCOUNT",
          .minor_num      = 1,
          .buffer_free    = 1,
-         .priv_lock      = SPIN_LOCK_UNLOCKED,
+         .priv_lock      = __SPIN_LOCK_UNLOCKED(sys_ser[1].priv_lock),
          .autorecording  = 1,
          .autopurge      = 1,
        },
@@ -143,7 +143,7 @@ static struct vmlogrdr_priv_t sys_ser[] = {
          .recording_name = "SYMPTOM",
          .minor_num      = 2,
          .buffer_free    = 1,
-         .priv_lock      = SPIN_LOCK_UNLOCKED,
+         .priv_lock      = __SPIN_LOCK_UNLOCKED(sys_ser[2].priv_lock),
          .autorecording  = 1,
          .autopurge      = 1,
        }
@@ -385,6 +385,9 @@ static int vmlogrdr_release (struct inode *inode, struct file *filp)
 
        struct vmlogrdr_priv_t * logptr = filp->private_data;
 
+       iucv_path_sever(logptr->path, NULL);
+       kfree(logptr->path);
+       logptr->path = NULL;
        if (logptr->autorecording) {
                ret = vmlogrdr_recording(logptr,0,logptr->autopurge);
                if (ret)