- int upt_notifier_fd; /* notifier fd for writing */
- struct pollfd *upt_pollfd; /* poll fds */
- int upt_nfds; /* active poll fds */
- int upt_npollfd; /* allocated poll fds */
- usock_conn_t **upt_idx2conn; /* conns corresponding to
- * upt_pollfd[idx] */
- int *upt_skip; /* skip chain */
- int *upt_fd2idx; /* index into upt_pollfd[]
- * by fd */
- int upt_nfd2idx; /* # of allocated elements
- * of upt_fd2idx[] */
- struct list_head upt_stale_list; /* list of orphaned conns */
- struct list_head upt_pollrequests; /* list of poll requests */
- pthread_mutex_t upt_pollrequests_lock; /* serialize */
- int upt_errno; /* non-zero if errored */
- struct cfs_completion upt_completion; /* wait/signal facility for
- * syncronizing shutdown */
+ cfs_socket_t *upt_notifier[2]; /* notifier sockets: 1st for
+ * writing, 2nd for reading */
+ struct pollfd *upt_pollfd; /* poll fds */
+ int upt_nfds; /* active poll fds */
+ int upt_npollfd; /* allocated poll fds */
+ usock_conn_t **upt_idx2conn; /* conns corresponding to
+ * upt_pollfd[idx] */
+ int *upt_skip; /* skip chain */
+ int *upt_fd2idx; /* index into upt_pollfd[]
+ * by fd */
+ int upt_nfd2idx; /* # of allocated elements
+ * of upt_fd2idx[] */
+ struct list_head upt_stale_list; /* list of orphaned conns */
+ struct list_head upt_pollrequests; /* list of poll requests */
+ pthread_mutex_t upt_pollrequests_lock; /* serialize */
+ int upt_errno; /* non-zero if errored */
+ struct completion upt_completion; /* wait/signal facility for
+ * syncronizing shutdown */