[S390] avoid default_llseek in s390 drivers
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 17 May 2010 08:00:07 +0000 (10:00 +0200)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Mon, 17 May 2010 08:00:16 +0000 (10:00 +0200)
Use nonseekable_open for a couple of s390 device drivers. This avoids
the use of default_llseek function which has a dependency on the BKL.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/hypfs/inode.c
arch/s390/kernel/debug.c
drivers/s390/char/fs3270.c
drivers/s390/char/zcore.c
drivers/s390/cio/chsc_sch.c
drivers/s390/cio/css.c
drivers/s390/crypto/zcrypt_api.c
drivers/s390/scsi/zfcp_cfdc.c

index c53f8ac..95c1aaa 100644 (file)
@@ -145,7 +145,7 @@ static int hypfs_open(struct inode *inode, struct file *filp)
                }
                mutex_unlock(&fs_info->lock);
        }
-       return 0;
+       return nonseekable_open(inode, filp);
 }
 
 static ssize_t hypfs_aio_read(struct kiocb *iocb, const struct iovec *iov,
index 0168472..9819226 100644 (file)
@@ -655,6 +655,7 @@ found:
        p_info->act_entry_offset = 0;
        file->private_data = p_info;
        debug_info_get(debug_info);
+       nonseekable_open(inode, file);
 out:
        mutex_unlock(&debug_mutex);
        return rc;
index 0eabcca..857dfcb 100644 (file)
@@ -484,6 +484,7 @@ fs3270_open(struct inode *inode, struct file *filp)
                raw3270_del_view(&fp->view);
                goto out;
        }
+       nonseekable_open(inode, filp);
        filp->private_data = fp;
 out:
        mutex_unlock(&fs3270_mutex);
index 7217966..f5ea338 100644 (file)
@@ -445,7 +445,7 @@ static int zcore_memmap_open(struct inode *inode, struct file *filp)
        }
        kfree(chunk_array);
        filp->private_data = buf;
-       return 0;
+       return nonseekable_open(inode, filp);
 }
 
 static int zcore_memmap_release(struct inode *inode, struct file *filp)
@@ -473,7 +473,7 @@ static ssize_t zcore_reipl_write(struct file *filp, const char __user *buf,
 
 static int zcore_reipl_open(struct inode *inode, struct file *filp)
 {
-       return 0;
+       return nonseekable_open(inode, filp);
 }
 
 static int zcore_reipl_release(struct inode *inode, struct file *filp)
index 3b6f4ad..a83877c 100644 (file)
@@ -803,6 +803,7 @@ static long chsc_ioctl(struct file *filp, unsigned int cmd,
 
 static const struct file_operations chsc_fops = {
        .owner = THIS_MODULE,
+       .open = nonseekable_open,
        .unlocked_ioctl = chsc_ioctl,
        .compat_ioctl = chsc_ioctl,
 };
index da6df04..ac94ac7 100644 (file)
@@ -1065,6 +1065,7 @@ static ssize_t cio_settle_write(struct file *file, const char __user *buf,
 }
 
 static const struct file_operations cio_settle_proc_fops = {
+       .open = nonseekable_open,
        .write = cio_settle_write,
 };
 
index 304caf5..41e0aae 100644 (file)
@@ -302,7 +302,7 @@ static ssize_t zcrypt_write(struct file *filp, const char __user *buf,
 static int zcrypt_open(struct inode *inode, struct file *filp)
 {
        atomic_inc(&zcrypt_open_count);
-       return 0;
+       return nonseekable_open(inode, filp);
 }
 
 /**
index 25d9e0a..1a2db0a 100644 (file)
@@ -254,6 +254,7 @@ static long zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command,
 }
 
 static const struct file_operations zfcp_cfdc_fops = {
+       .open = nonseekable_open,
        .unlocked_ioctl = zfcp_cfdc_dev_ioctl,
 #ifdef CONFIG_COMPAT
        .compat_ioctl = zfcp_cfdc_dev_ioctl