History

Merge tag 'dm-3.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm

Pull device-mapper changes from Mike Snitzer: "A lot of attention was paid to improving the thin-provisioning target's handling of metadata operation failures and running out of space. A new 'error_if_no_space' feature was added to allow users to error IOs rather than queue them when either the data or metadata space is exhausted. Additional fixes/features include: - a few fixes to properly support thin metadata device resizing - a solution for reliably waiting for a DM device's embedded kobject to be released before destroying the device - old dm-snapshot is updated to use the dm-bufio interface to take advantage of readahead capabilities that improve snapshot activation - new dm-cache target tunables to control how quickly data is promoted to the cache (fast) device - improved write efficiency of cluster mirror target by combining userspace flush and mark requests" * tag 'dm-3.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (35 commits) dm log userspace: allow mark requests to piggyback on flush requests dm space map metadata: fix bug in resizing of thin metadata dm cache: add policy name to status output dm thin: fix pool feature parsing dm sysfs: fix a module unload race dm snapshot: use dm-bufio prefetch dm snapshot: use dm-bufio dm snapshot: prepare for switch to using dm-bufio dm snapshot: use GFP_KERNEL when initializing exceptions dm cache: add block sizes and total cache blocks to status output dm btree: add dm_btree_find_lowest_key dm space map metadata: fix extending the space map dm space map common: make sure new space is used during extend dm: wait until embedded kobject is released before destroying a device dm: remove pointless kobject comparison in dm_get_from_kobject dm snapshot: call destroy_work_on_stack() to pair with INIT_WORK_ONSTACK() dm cache policy mq: introduce three promotion threshold tunables dm cache policy mq: use list_del_init instead of list_del + INIT_LIST_HEAD dm thin: fix set_pool_mode exposed pool operation races dm thin: eliminate the no_free_space flag ...

Linus Torvalds committed 12 years ago

Commit fe41c2c2 parents 194e57f 5066a4d29 files · +767 −321Browse files

Showing the changes to include/uapi/linux (1 of 29 files). Show all

Unified · Split

include/uapi/linux/dm-log-userspace.h+17−3
@@ -201,11 +201,18 @@ · 200 unmodified lines
201201 * int (*flush)(struct dm_dirty_log *log);
202202 *
203203 * Payload-to-userspace:
204− * None.
204+ * If the 'integrated_flush' directive is present in the constructor
205+ * table, the payload is as same as DM_ULOG_MARK_REGION:
206+ * uint64_t [] - region(s) to mark
207+ * else
208+ * None
205209 * Payload-to-kernel:
206210 * None.
207211 *
208− * No incoming or outgoing payload. Simply flush log state to disk.
212+ * If the 'integrated_flush' option was used during the creation of the
213+ * log, mark region requests are carried as payload in the flush request.
214+ * Piggybacking the mark requests in this way allows for fewer communications
215+ * between kernel and userspace.
209216 *
210217 * When the request has been processed, user-space must return the
211218 * dm_ulog_request to the kernel - setting the 'error' field and clearing
@@ -385,8 +392,15 @@ · 173 unmodified lines
385392 * version 2: DM_ULOG_CTR allowed to return a string containing a
386393 * device name that is to be registered with DM via
387394 * 'dm_get_device'.
395+ * version 3: DM_ULOG_FLUSH is capable of carrying payload for marking
396+ * regions. This "integrated flush" reduces the number of
397+ * requests between the kernel and userspace by effectively
398+ * merging 'mark' and 'flush' requests. A constructor table
399+ * argument ('integrated_flush') is required to turn this
400+ * feature on, so it is backwards compatible with older
401+ * userspace versions.
388402 */
389−#define DM_ULOG_REQUEST_VERSION 2
403+#define DM_ULOG_REQUEST_VERSION 3
390404
391405 struct dm_ulog_request {
392406 /*