diff --git a/src/input/ipa.c b/src/input/ipa.c
index 8281b4f..f01ecd9 100644
--- a/src/input/ipa.c
+++ b/src/input/ipa.c
@@ -89,7 +89,7 @@
 	LOGIPA(link, LOGL_DEBUG, "sending data\n");
 
 	if (llist_empty(&link->tx_queue)) {
-		ofd->when &= ~OSMO_FD_WRITE;
+		osmo_fd_write_disable(ofd);
 		return 0;
 	}
 	lh = link->tx_queue.next;
@@ -124,7 +124,7 @@
 				link->updown_cb(link, 0);
 			return 0;
 		}
-		ofd->when &= ~OSMO_FD_WRITE;
+		osmo_fd_write_disable(ofd);
 		LOGIPA(link, LOGL_NOTICE, "connection done\n");
 		link->state = IPA_CLIENT_LINK_STATE_CONNECTED;
 		if (link->updown_cb)
@@ -228,7 +228,7 @@
 	if (ret < 0)
 		return ret;
 	link->ofd->fd = ret;
-	link->ofd->when |= OSMO_FD_WRITE;
+	osmo_fd_write_enable(link->ofd);
 	if (osmo_fd_register(link->ofd) < 0) {
 		close(ret);
 		link->ofd->fd = -1;
@@ -241,7 +241,7 @@
 void ipa_client_conn_send(struct ipa_client_conn *link, struct msgb *msg)
 {
 	msgb_enqueue(&link->tx_queue, msg);
-	link->ofd->when |= OSMO_FD_WRITE;
+	osmo_fd_write_enable(link->ofd);
 }
 
 size_t ipa_client_conn_clear_queue(struct ipa_client_conn *link)
@@ -254,7 +254,7 @@
 		deleted += 1;
 	}
 
-	link->ofd->when &= ~OSMO_FD_WRITE;
+	osmo_fd_write_disable(link->ofd);
 	return deleted;
 }
 
@@ -387,7 +387,7 @@
 	msg = msgb_dequeue(&conn->tx_queue);
 
 	if (!msg) {
-		conn->ofd.when &= ~OSMO_FD_WRITE;
+		osmo_fd_write_disable(&conn->ofd);
 		return;
 	}
 
@@ -532,5 +532,5 @@
 void ipa_server_conn_send(struct ipa_server_conn *conn, struct msgb *msg)
 {
 	msgb_enqueue(&conn->tx_queue, msg);
-	conn->ofd.when |= OSMO_FD_WRITE;
+	osmo_fd_write_enable(&conn->ofd);
 }
