[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 c53f8ac825caf3c6aa6ef54d370fa1ecd9f9688d..95c1aaac06cd73206cea41db6ec70125b88b070b 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 0168472b2fdfb66ed122e4ebaabf7a7a2d415efd..98192261491de90d5951dc95530ba0a666bc02fe 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 0eabcca3c92d45f47e2001a046c996ac077df7fd..857dfcb7b35999c694bcd740d51bbb51e4bf7ecb 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 7217966f7d318eb2757c95ac35db0d471f3198bf..f5ea3384a4b977ca6646fbd0e37bfd168928892b 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 3b6f4adc50948d078f88e314350f55a208434a6f..a83877c664a654108791d785526f22f7de4e7043 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 da6df0483289e30c675916a632ec6e4382247232..ac94ac7514590ea1f15c4ff560f61ddcbbf8df17 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 304caf549973268496d076298def900a38be061d..41e0aaefafd5bfce4fb13422eadadec736732386 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 25d9e0ae9c5726abbc76b3c8a24b79f63e2f954f..1a2db0a35737480647406c55d1808e3372889b61 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