ublk_drv: remove nr_aborted_queues from ublk_device
[platform/kernel/linux-starfive.git] / io_uring / notif.h
index 5b4d710..c88c800 100644 (file)
@@ -13,16 +13,29 @@ struct io_notif_data {
        struct file             *file;
        struct ubuf_info        uarg;
        unsigned long           account_pages;
+       bool                    zc_report;
+       bool                    zc_used;
+       bool                    zc_copied;
 };
 
-void io_notif_flush(struct io_kiocb *notif);
 struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx);
+void io_notif_set_extended(struct io_kiocb *notif);
 
 static inline struct io_notif_data *io_notif_to_data(struct io_kiocb *notif)
 {
        return io_kiocb_to_cmd(notif, struct io_notif_data);
 }
 
+static inline void io_notif_flush(struct io_kiocb *notif)
+       __must_hold(&notif->ctx->uring_lock)
+{
+       struct io_notif_data *nd = io_notif_to_data(notif);
+
+       /* drop slot's master ref */
+       if (refcount_dec_and_test(&nd->uarg.refcnt))
+               io_req_task_work_add(notif);
+}
+
 static inline int io_notif_account_mem(struct io_kiocb *notif, unsigned len)
 {
        struct io_ring_ctx *ctx = notif->ctx;