|
@@ -778,9 +778,35 @@ static long orangefs_devreq_compat_ioctl(struct file *filp, unsigned int cmd,
|
|
|
|
|
|
#endif /* CONFIG_COMPAT is in .config */
|
|
|
|
|
|
+static __poll_t orangefs_devreq_poll(struct file *file,
|
|
|
+ struct poll_table_struct *poll_table)
|
|
|
+{
|
|
|
+ __poll_t poll_revent_mask = 0;
|
|
|
+
|
|
|
+ poll_wait(file, &orangefs_request_list_waitq, poll_table);
|
|
|
+
|
|
|
+ if (!list_empty(&orangefs_request_list))
|
|
|
+ poll_revent_mask |= EPOLLIN;
|
|
|
+ return poll_revent_mask;
|
|
|
+}
|
|
|
+
|
|
|
/* the assigned character device major number */
|
|
|
static int orangefs_dev_major;
|
|
|
|
|
|
+static const struct file_operations orangefs_devreq_file_operations = {
|
|
|
+ .owner = THIS_MODULE,
|
|
|
+ .read = orangefs_devreq_read,
|
|
|
+ .write_iter = orangefs_devreq_write_iter,
|
|
|
+ .open = orangefs_devreq_open,
|
|
|
+ .release = orangefs_devreq_release,
|
|
|
+ .unlocked_ioctl = orangefs_devreq_ioctl,
|
|
|
+
|
|
|
+#ifdef CONFIG_COMPAT /* CONFIG_COMPAT is in .config */
|
|
|
+ .compat_ioctl = orangefs_devreq_compat_ioctl,
|
|
|
+#endif
|
|
|
+ .poll = orangefs_devreq_poll
|
|
|
+};
|
|
|
+
|
|
|
/*
|
|
|
* Initialize orangefs device specific state:
|
|
|
* Must be called at module load time only
|
|
@@ -813,29 +839,3 @@ void orangefs_dev_cleanup(void)
|
|
|
"*** /dev/%s character device unregistered ***\n",
|
|
|
ORANGEFS_REQDEVICE_NAME);
|
|
|
}
|
|
|
-
|
|
|
-static __poll_t orangefs_devreq_poll(struct file *file,
|
|
|
- struct poll_table_struct *poll_table)
|
|
|
-{
|
|
|
- __poll_t poll_revent_mask = 0;
|
|
|
-
|
|
|
- poll_wait(file, &orangefs_request_list_waitq, poll_table);
|
|
|
-
|
|
|
- if (!list_empty(&orangefs_request_list))
|
|
|
- poll_revent_mask |= EPOLLIN;
|
|
|
- return poll_revent_mask;
|
|
|
-}
|
|
|
-
|
|
|
-const struct file_operations orangefs_devreq_file_operations = {
|
|
|
- .owner = THIS_MODULE,
|
|
|
- .read = orangefs_devreq_read,
|
|
|
- .write_iter = orangefs_devreq_write_iter,
|
|
|
- .open = orangefs_devreq_open,
|
|
|
- .release = orangefs_devreq_release,
|
|
|
- .unlocked_ioctl = orangefs_devreq_ioctl,
|
|
|
-
|
|
|
-#ifdef CONFIG_COMPAT /* CONFIG_COMPAT is in .config */
|
|
|
- .compat_ioctl = orangefs_devreq_compat_ioctl,
|
|
|
-#endif
|
|
|
- .poll = orangefs_devreq_poll
|
|
|
-};
|