diff options
author | Neil Brown <neilb@suse.de> | 2008-06-12 02:13:23 +0200 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2008-06-12 02:13:23 +0200 |
commit | 2e735d198233a67f305862f72e3a5d0f0c3c548c (patch) | |
tree | 8dad807f9ed77f623ad5cf70900eab23054a552e /mdmon.h | |
parent | Store and recover spare_assign info in DDF. (diff) | |
download | mdadm-2e735d198233a67f305862f72e3a5d0f0c3c548c.tar.xz mdadm-2e735d198233a67f305862f72e3a5d0f0c3c548c.zip |
Allow passing metadata update to the monitor.
Code in manager can now just call queue_metadata_update with a
(freeable) buf holding the update, and it will get passed to the
monitor and written out.
Diffstat (limited to 'mdmon.h')
-rw-r--r-- | mdmon.h | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -21,7 +21,24 @@ struct active_array { unsigned long long resync_start; }; - +/* + * Metadata updates are handled by the monitor thread, + * as it has exclusive access to the metadata. + * When the manager want to updates metadata, either + * for it's own reason (e.g. committing a spare) or + * on behalf of mdadm, it creates a metadata_update + * structure and queues it to the monitor. + * Updates are created and processed by code under the + * superswitch. All common code sees them as opaque + * blobs. + */ +struct metadata_update { + int len; + char *buf; + void *space; /* allocated space that monitor will use */ + struct metadata_update *next; +}; +extern struct metadata_update *update_queue, *update_queue_handled; #define MD_MAJOR 9 |