]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libmount: (monitor) support type-specific data
authorKarel Zak <kzak@redhat.com>
Tue, 27 May 2025 10:04:24 +0000 (12:04 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 6 Aug 2025 12:50:56 +0000 (14:50 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
libmount/src/monitor.c
libmount/src/monitor.h

index 3044dcf68222cb2fc719ac708baf76ec1d0c8406..55de02174da06f1c18eb33da28ed9d54e6343dee 100644 (file)
@@ -78,6 +78,10 @@ void free_monitor_entry(struct monitor_entry *me)
 {
        if (!me)
                return;
+
+       if (me->opers->op_free_data)
+               me->opers->op_free_data(me);
+
        list_del(&me->ents);
        if (me->fd >= 0)
                close(me->fd);
index 6c6ba4450655f64d448e40b00bf9b0f3379caa84..38e3dfce8bdfc5c5d1caa48d1feb0e2256abbc41 100644 (file)
@@ -14,6 +14,7 @@ struct monitor_entry {
        uint32_t                events;         /* wanted epoll events */
 
        const struct monitor_opers *opers;
+       void                    *data;          /* private type-specific data */
 
        unsigned int            enable : 1,
                                changed : 1;
@@ -33,6 +34,7 @@ struct libmnt_monitor {
 struct monitor_opers {
        int (*op_get_fd)(struct libmnt_monitor *, struct monitor_entry *);
        int (*op_close_fd)(struct libmnt_monitor *, struct monitor_entry *);
+       int (*op_free_data)(struct monitor_entry *);
        int (*op_event_verify)(struct libmnt_monitor *, struct monitor_entry *);
 };