|
@@ -781,7 +781,7 @@ static int ib_umad_open(struct inode *inode, struct file *filp)
|
|
|
{
|
|
|
struct ib_umad_port *port;
|
|
|
struct ib_umad_file *file;
|
|
|
- int ret = 0;
|
|
|
+ int ret;
|
|
|
|
|
|
port = container_of(inode->i_cdev, struct ib_umad_port, cdev);
|
|
|
if (port)
|
|
@@ -814,6 +814,8 @@ static int ib_umad_open(struct inode *inode, struct file *filp)
|
|
|
|
|
|
list_add_tail(&file->port_list, &port->file_list);
|
|
|
|
|
|
+ ret = nonseekable_open(inode, filp);
|
|
|
+
|
|
|
out:
|
|
|
mutex_unlock(&port->file_mutex);
|
|
|
return ret;
|
|
@@ -866,7 +868,8 @@ static const struct file_operations umad_fops = {
|
|
|
.compat_ioctl = ib_umad_compat_ioctl,
|
|
|
#endif
|
|
|
.open = ib_umad_open,
|
|
|
- .release = ib_umad_close
|
|
|
+ .release = ib_umad_close,
|
|
|
+ .llseek = no_llseek,
|
|
|
};
|
|
|
|
|
|
static int ib_umad_sm_open(struct inode *inode, struct file *filp)
|
|
@@ -903,7 +906,7 @@ static int ib_umad_sm_open(struct inode *inode, struct file *filp)
|
|
|
|
|
|
filp->private_data = port;
|
|
|
|
|
|
- return 0;
|
|
|
+ return nonseekable_open(inode, filp);
|
|
|
|
|
|
fail:
|
|
|
kref_put(&port->umad_dev->ref, ib_umad_release_dev);
|
|
@@ -933,7 +936,8 @@ static int ib_umad_sm_close(struct inode *inode, struct file *filp)
|
|
|
static const struct file_operations umad_sm_fops = {
|
|
|
.owner = THIS_MODULE,
|
|
|
.open = ib_umad_sm_open,
|
|
|
- .release = ib_umad_sm_close
|
|
|
+ .release = ib_umad_sm_close,
|
|
|
+ .llseek = no_llseek,
|
|
|
};
|
|
|
|
|
|
static struct ib_client umad_client = {
|