<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in dm-switch.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>3664ff82 - dm: add helper macro for simple DM target module init and exit</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#3664ff82</link>
        <description>dm: add helper macro for simple DM target module init and exitEliminate duplicate boilerplate code for simple modules that containa single DM target driver without any additional setup code.Add a new module_dm() macro, which replaces the module_init() andmodule_exit() with template functions that call dm_register_target()and dm_unregister_target() respectively.Signed-off-by: Yangtao Li &lt;frank.li@vivo.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Sun, 09 Apr 2023 16:43:37 +0000</pubDate>
        <dc:creator>Yangtao Li &lt;frank.li@vivo.com&gt;</dc:creator>
    </item>
<item>
        <title>b362c733 - dm: push error reporting down to dm_register_target()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#b362c733</link>
        <description>dm: push error reporting down to dm_register_target()Simplifies each DM target&apos;s init method by making dm_register_target()responsible for its error reporting (on behalf of targets).Signed-off-by: Yangtao Li &lt;frank.li@vivo.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Sat, 18 Mar 2023 13:16:33 +0000</pubDate>
        <dc:creator>Yangtao Li &lt;frank.li@vivo.com&gt;</dc:creator>
    </item>
<item>
        <title>86a3238c - dm: change &quot;unsigned&quot; to &quot;unsigned int&quot;</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#86a3238c</link>
        <description>dm: change &quot;unsigned&quot; to &quot;unsigned int&quot;Signed-off-by: Heinz Mauelshagen &lt;heinzm@redhat.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Wed, 25 Jan 2023 20:14:58 +0000</pubDate>
        <dc:creator>Heinz Mauelshagen &lt;heinzm@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>3bd94003 - dm: add missing SPDX-License-Indentifiers</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#3bd94003</link>
        <description>dm: add missing SPDX-License-Indentifiers&apos;GPL-2.0-only&apos; is used instead of &apos;GPL-2.0&apos; because SPDX hasdeprecated its use.Suggested-by: John Wiele &lt;jwiele@redhat.com&gt;Signed-off-by: Heinz Mauelshagen &lt;heinzm@redhat.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Wed, 25 Jan 2023 20:00:44 +0000</pubDate>
        <dc:creator>Heinz Mauelshagen &lt;heinzm@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>6dcbb52c - dm: use bdev_nr_sectors and bdev_nr_bytes instead of open coding them</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#6dcbb52c</link>
        <description>dm: use bdev_nr_sectors and bdev_nr_bytes instead of open coding themUse the proper helpers to read the block device size.Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Acked-by: Mike Snitzer &lt;snitzer@redhat.com&gt;Link: https://lore.kernel.org/r/20211018101130.1838532-6-hch@lst.deSigned-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Mon, 18 Oct 2021 10:11:05 +0000</pubDate>
        <dc:creator>Christoph Hellwig &lt;hch@lst.de&gt;</dc:creator>
    </item>
<item>
        <title>8ec45662 - dm: update target status functions to support IMA measurement</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#8ec45662</link>
        <description>dm: update target status functions to support IMA measurementFor device mapper targets to take advantage of IMA&apos;s measurementcapabilities, the status functions for the individual targets need to beupdated to handle the status_type_t case for value STATUSTYPE_IMA.Update status functions for the following target types, to log theirrespective attributes to be measured using IMA. 01. cache 02. crypt 03. integrity 04. linear 05. mirror 06. multipath 07. raid 08. snapshot 09. striped 10. verityFor rest of the targets, handle the STATUSTYPE_IMA case by setting themeasurement buffer to NULL.For IMA to measure the data on a given system, the IMA policy on thesystem needs to be updated to have the following line, and the systemneeds to be restarted for the measurements to take effect./etc/ima/ima-policy measure func=CRITICAL_DATA label=device-mapper template=ima-bufThe measurements will be reflected in the IMA logs, which are located at:/sys/kernel/security/integrity/ima/ascii_runtime_measurements/sys/kernel/security/integrity/ima/binary_runtime_measurementsThese IMA logs can later be consumed by various attestation clientsrunning on the system, and send them to external services for attestingthe system.The DM target data measured by IMA subsystem can alternativelybe queried from userspace by setting DM_IMA_MEASUREMENT_FLAG withDM_TABLE_STATUS_CMD.Signed-off-by: Tushar Sugandhi &lt;tusharsu@linux.microsoft.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Tue, 13 Jul 2021 00:49:03 +0000</pubDate>
        <dc:creator>Tushar Sugandhi &lt;tusharsu@linux.microsoft.com&gt;</dc:creator>
    </item>
<item>
        <title>410fe220 - dm: add support for REQ_NOWAIT to various targets</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#410fe220</link>
        <description>dm: add support for REQ_NOWAIT to various targetscommit 021a24460dc2 (&quot;block: add QUEUE_FLAG_NOWAIT&quot;) added a new queueflag QUEUE_FLAG_NOWAIT to advertise if the bdev supports handling ofREQ_NOWAIT or not. DM core supports stacking QUEUE_FLAG_NOWAIT sincecommit 6abc49468eea (&quot;dm: add support for REQ_NOWAIT and enable it forlinear target&quot;), in which only dm-linear enabled it.Update others DM targets, which just do simple remapping, to enablesupport for REQ_NOWAIT.Signed-off-by: Jeffle Xu &lt;jefflexu@linux.alibaba.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Fri, 13 Nov 2020 02:05:51 +0000</pubDate>
        <dc:creator>Jeffle Xu &lt;jefflexu@linux.alibaba.com&gt;</dc:creator>
    </item>
<item>
        <title>b18ae8dd - dm: replace zero-length array with flexible-array</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#b18ae8dd</link>
        <description>dm: replace zero-length array with flexible-arrayThe current codebase makes use of the zero-length array languageextension to the C90 standard, but the preferred mechanism to declarevariable-length types such as these ones is a flexible array member[1][2],introduced in C99:struct foo {        int stuff;        struct boo array[];};By making use of the mechanism above, we will get a compiler warningin case the flexible array does not occur last in the structure, whichwill help us prevent some kind of undefined behavior bugs from beinginadvertently introduced[3] to the codebase from now on.Also, notice that, dynamic memory allocations won&apos;t be affected bythis change:&quot;Flexible array members have incomplete type, and so the sizeof operatormay not be applied. As a quirk of the original implementation ofzero-length arrays, sizeof evaluates to zero.&quot;[1]sizeof(flexible-array-member) triggers a warning because flexible arraymembers have incomplete type[1]. There are some instances of code inwhich the sizeof operator is being incorrectly/erroneously applied tozero-length arrays and the result is zero. Such instances may be hidingsome bugs. So, this work (flexible-array member conversions) will alsohelp to get completely rid of those sorts of issues.This issue was found with the help of Coccinelle.[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html[2] https://github.com/KSPP/linux/issues/21[3] commit 76497732932f (&quot;cxgb3/l2t: Fix undefined behaviour&quot;)Signed-off-by: Gustavo A. R. Silva &lt;gustavoars@kernel.org&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Thu, 07 May 2020 18:51:58 +0000</pubDate>
        <dc:creator>Gustavo A. R. Silva &lt;gustavoars@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>d2832376 - dm switch: use struct_size() in kzalloc()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#d2832376</link>
        <description>dm switch: use struct_size() in kzalloc()One of the more common cases of allocation size calculations is findingthe size of a structure that has a zero-sized array at the end, alongwith memory for some number of elements for that array. For example:struct foo {    int stuff;    void *entry[];};instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we cannow use the new struct_size() helper:instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL);This code was detected with the help of Coccinelle.Signed-off-by: Gustavo A. R. Silva &lt;gustavo@embeddedor.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Tue, 08 Jan 2019 16:02:33 +0000</pubDate>
        <dc:creator>Gustavo A. R. Silva &lt;gustavo@embeddedor.com&gt;</dc:creator>
    </item>
<item>
        <title>42bc47b3 - treewide: Use array_size() in vmalloc()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#42bc47b3</link>
        <description>treewide: Use array_size() in vmalloc()The vmalloc() function has no 2-factor argument form, so multiplicationfactors need to be wrapped in array_size(). This patch replaces cases of:        vmalloc(a * b)with:        vmalloc(array_size(a, b))as well as handling cases of:        vmalloc(a * b * c)with:        vmalloc(array3_size(a, b, c))This does, however, attempt to ignore constant size factors like:        vmalloc(4 * 1024)though any constants defined via macros get caught up in the conversion.Any factors with a sizeof() of &quot;unsigned char&quot;, &quot;char&quot;, and &quot;u8&quot; weredropped, since they&apos;re redundant.The Coccinelle script used for this was:// Fix redundant parens around sizeof().@@type TYPE;expression THING, E;@@(  vmalloc(-	(sizeof(TYPE)) * E+	sizeof(TYPE) * E  , ...)|  vmalloc(-	(sizeof(THING)) * E+	sizeof(THING) * E  , ...))// Drop single-byte sizes and redundant parens.@@expression COUNT;typedef u8;typedef __u8;@@(  vmalloc(-	sizeof(u8) * (COUNT)+	COUNT  , ...)|  vmalloc(-	sizeof(__u8) * (COUNT)+	COUNT  , ...)|  vmalloc(-	sizeof(char) * (COUNT)+	COUNT  , ...)|  vmalloc(-	sizeof(unsigned char) * (COUNT)+	COUNT  , ...)|  vmalloc(-	sizeof(u8) * COUNT+	COUNT  , ...)|  vmalloc(-	sizeof(__u8) * COUNT+	COUNT  , ...)|  vmalloc(-	sizeof(char) * COUNT+	COUNT  , ...)|  vmalloc(-	sizeof(unsigned char) * COUNT+	COUNT  , ...))// 2-factor product with sizeof(type/expression) and identifier or constant.@@type TYPE;expression THING;identifier COUNT_ID;constant COUNT_CONST;@@(  vmalloc(-	sizeof(TYPE) * (COUNT_ID)+	array_size(COUNT_ID, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(TYPE) * COUNT_ID+	array_size(COUNT_ID, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(TYPE) * (COUNT_CONST)+	array_size(COUNT_CONST, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(TYPE) * COUNT_CONST+	array_size(COUNT_CONST, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(THING) * (COUNT_ID)+	array_size(COUNT_ID, sizeof(THING))  , ...)|  vmalloc(-	sizeof(THING) * COUNT_ID+	array_size(COUNT_ID, sizeof(THING))  , ...)|  vmalloc(-	sizeof(THING) * (COUNT_CONST)+	array_size(COUNT_CONST, sizeof(THING))  , ...)|  vmalloc(-	sizeof(THING) * COUNT_CONST+	array_size(COUNT_CONST, sizeof(THING))  , ...))// 2-factor product, only identifiers.@@identifier SIZE, COUNT;@@  vmalloc(-	SIZE * COUNT+	array_size(COUNT, SIZE)  , ...)// 3-factor product with 1 sizeof(type) or sizeof(expression), with// redundant parens removed.@@expression THING;identifier STRIDE, COUNT;type TYPE;@@(  vmalloc(-	sizeof(TYPE) * (COUNT) * (STRIDE)+	array3_size(COUNT, STRIDE, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(TYPE) * (COUNT) * STRIDE+	array3_size(COUNT, STRIDE, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(TYPE) * COUNT * (STRIDE)+	array3_size(COUNT, STRIDE, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(TYPE) * COUNT * STRIDE+	array3_size(COUNT, STRIDE, sizeof(TYPE))  , ...)|  vmalloc(-	sizeof(THING) * (COUNT) * (STRIDE)+	array3_size(COUNT, STRIDE, sizeof(THING))  , ...)|  vmalloc(-	sizeof(THING) * (COUNT) * STRIDE+	array3_size(COUNT, STRIDE, sizeof(THING))  , ...)|  vmalloc(-	sizeof(THING) * COUNT * (STRIDE)+	array3_size(COUNT, STRIDE, sizeof(THING))  , ...)|  vmalloc(-	sizeof(THING) * COUNT * STRIDE+	array3_size(COUNT, STRIDE, sizeof(THING))  , ...))// 3-factor product with 2 sizeof(variable), with redundant parens removed.@@expression THING1, THING2;identifier COUNT;type TYPE1, TYPE2;@@(  vmalloc(-	sizeof(TYPE1) * sizeof(TYPE2) * COUNT+	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))  , ...)|  vmalloc(-	sizeof(TYPE1) * sizeof(THING2) * (COUNT)+	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))  , ...)|  vmalloc(-	sizeof(THING1) * sizeof(THING2) * COUNT+	array3_size(COUNT, sizeof(THING1), sizeof(THING2))  , ...)|  vmalloc(-	sizeof(THING1) * sizeof(THING2) * (COUNT)+	array3_size(COUNT, sizeof(THING1), sizeof(THING2))  , ...)|  vmalloc(-	sizeof(TYPE1) * sizeof(THING2) * COUNT+	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))  , ...)|  vmalloc(-	sizeof(TYPE1) * sizeof(THING2) * (COUNT)+	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))  , ...))// 3-factor product, only identifiers, with redundant parens removed.@@identifier STRIDE, SIZE, COUNT;@@(  vmalloc(-	(COUNT) * STRIDE * SIZE+	array3_size(COUNT, STRIDE, SIZE)  , ...)|  vmalloc(-	COUNT * (STRIDE) * SIZE+	array3_size(COUNT, STRIDE, SIZE)  , ...)|  vmalloc(-	COUNT * STRIDE * (SIZE)+	array3_size(COUNT, STRIDE, SIZE)  , ...)|  vmalloc(-	(COUNT) * (STRIDE) * SIZE+	array3_size(COUNT, STRIDE, SIZE)  , ...)|  vmalloc(-	COUNT * (STRIDE) * (SIZE)+	array3_size(COUNT, STRIDE, SIZE)  , ...)|  vmalloc(-	(COUNT) * STRIDE * (SIZE)+	array3_size(COUNT, STRIDE, SIZE)  , ...)|  vmalloc(-	(COUNT) * (STRIDE) * (SIZE)+	array3_size(COUNT, STRIDE, SIZE)  , ...)|  vmalloc(-	COUNT * STRIDE * SIZE+	array3_size(COUNT, STRIDE, SIZE)  , ...))// Any remaining multi-factor products, first at least 3-factor products// when they&apos;re not all constants...@@expression E1, E2, E3;constant C1, C2, C3;@@(  vmalloc(C1 * C2 * C3, ...)|  vmalloc(-	E1 * E2 * E3+	array3_size(E1, E2, E3)  , ...))// And then all remaining 2 factors products when they&apos;re not all constants.@@expression E1, E2;constant C1, C2;@@(  vmalloc(C1 * C2, ...)|  vmalloc(-	E1 * E2+	array_size(E1, E2)  , ...))Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Tue, 12 Jun 2018 21:27:11 +0000</pubDate>
        <dc:creator>Kees Cook &lt;keescook@chromium.org&gt;</dc:creator>
    </item>
<item>
        <title>5bd5e8d8 - dm: remove fmode_t argument from .prepare_ioctl hook</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#5bd5e8d8</link>
        <description>dm: remove fmode_t argument from .prepare_ioctl hookUse the fmode_t that is passed to dm_blk_ioctl() rather thaninconsistently (varies across targets) drop it on the floor byoverriding it with the fmode_t stored in &apos;struct dm_dev&apos;.All the persistent reservation functions weren&apos;t using the fmode_t theygot back from .prepare_ioctl so remove them.Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Tue, 03 Apr 2018 20:54:10 +0000</pubDate>
        <dc:creator>Mike Snitzer &lt;snitzer@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>1eb5fa84 - dm: allow targets to return output from messages they are sent</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#1eb5fa84</link>
        <description>dm: allow targets to return output from messages they are sentCould be useful for a target to return stats or other information.If a target does DMEMIT() anything to @result from its .message methodthen it must return 1 to the caller.Signed-off-By: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Wed, 28 Feb 2018 20:59:59 +0000</pubDate>
        <dc:creator>Mike Snitzer &lt;snitzer@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>6aa7de05 - locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#6aa7de05</link>
        <description>locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE()Please do not apply this to mainline directly, instead please re-run thecoccinelle script shown below and apply its output.For several reasons, it is desirable to use {READ,WRITE}_ONCE() inpreference to ACCESS_ONCE(), and new code is expected to use one of theformer. So far, there&apos;s been no reason to change most existing uses ofACCESS_ONCE(), as these aren&apos;t harmful, and changing them results inchurn.However, for some features, the read/write distinction is critical tocorrect operation. To distinguish these cases, separate read/writeaccessors must be used. This patch migrates (most) remainingACCESS_ONCE() instances to {READ,WRITE}_ONCE(), using the followingcoccinelle script:----// Convert trivial ACCESS_ONCE() uses to equivalent READ_ONCE() and// WRITE_ONCE()// $ make coccicheck COCCI=/home/mark/once.cocci SPFLAGS=&quot;--include-headers&quot; MODE=patchvirtual patch@ depends on patch @expression E1, E2;@@- ACCESS_ONCE(E1) = E2+ WRITE_ONCE(E1, E2)@ depends on patch @expression E;@@- ACCESS_ONCE(E)+ READ_ONCE(E)----Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;Cc: davem@davemloft.netCc: linux-arch@vger.kernel.orgCc: mpe@ellerman.id.auCc: shuah@kernel.orgCc: snitzer@redhat.comCc: thor.thayer@linux.intel.comCc: tj@kernel.orgCc: viro@zeniv.linux.org.ukCc: will.deacon@arm.comLink: http://lkml.kernel.org/r/1508792849-3115-19-git-send-email-paulmck@linux.vnet.ibm.comSigned-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Mon, 23 Oct 2017 21:07:29 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>5916a22b - dm: constify argument arrays</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#5916a22b</link>
        <description>dm: constify argument arraysThe arrays of &apos;struct dm_arg&apos; are never modified by the device-mappercore, so constify them so that they are placed in .rodata.(Exception: the args array in dm-raid cannot be constified because it isallocated on the stack and modified.)Signed-off-by: Eric Biggers &lt;ebiggers@google.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Thu, 22 Jun 2017 18:32:45 +0000</pubDate>
        <dc:creator>Eric Biggers &lt;ebiggers@google.com&gt;</dc:creator>
    </item>
<item>
        <title>74d46992 - block: replace bi_bdev with a gendisk pointer and partitions index</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#74d46992</link>
        <description>block: replace bi_bdev with a gendisk pointer and partitions indexThis way we don&apos;t need a block_device structure to submit I/O.  Theblock_device has different life time rules from the gendisk andrequest_queue and is usually only available when the block device nodeis open.  Other callers need to explicitly create one (e.g. the lightnvmpassthrough code, or the new nvme multipathing code).For the actual I/O path all that we need is the gendisk, which existsonce per block device.  But given that the block layer also doespartition remapping we additionally need a partition index, which isused for said remapping in generic_make_request.Note that all the block drivers generally want request_queue orsometimes the gendisk, so this removes a layer of indirection allover the stack.Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Wed, 23 Aug 2017 17:10:32 +0000</pubDate>
        <dc:creator>Christoph Hellwig &lt;hch@lst.de&gt;</dc:creator>
    </item>
<item>
        <title>aad9ae45 - dm switch: simplify conditional in alloc_region_table()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#aad9ae45</link>
        <description>dm switch: simplify conditional in alloc_region_table()The variable sctx-&gt;nr_regions has type unsigned long and the variablenr_regions has type sector_t.Thus the variables may be different when overflow happens.Changed the conditional to &quot;if (nr_regions &gt;= ULONG_MAX)&quot;.Also move the assignment of nr_regions after sector_div()and the sanity check which looks more sane.Signed-off-by: Tomohiro Kusumi &lt;kusumi.tomohiro@gmail.com&gt;Reviewed-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Wed, 28 Oct 2015 18:54:21 +0000</pubDate>
        <dc:creator>Tomohiro Kusumi &lt;kusumi.tomohiro@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e56f81e0 - dm: refactor ioctl handling</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#e56f81e0</link>
        <description>dm: refactor ioctl handlingThis moves the call to blkdev_ioctl and the argument checking to DM corecode, and only leaves a callout to find the block device to operate onin the targets.  This simplifies the code and allows us to pass throughioctl-like command using other methods in the next patch.Also split out a helper around calling the prepare_ioctl method thatwill be reused for persistent reservation handling.Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Thu, 15 Oct 2015 12:10:50 +0000</pubDate>
        <dc:creator>Christoph Hellwig &lt;hch@lst.de&gt;</dc:creator>
    </item>
<item>
        <title>56b1ebf2 - dm switch: efficiently support repetitive patterns</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#56b1ebf2</link>
        <description>dm switch: efficiently support repetitive patternsAdd support for quickly loading a repetitive pattern into thedm-switch target.In the &quot;set_regions_mappings&quot; message, the user may now use &quot;Rn,m&quot; asone of the arguments.  &quot;n&quot; and &quot;m&quot; are hexadecimal numbers.  The &quot;Rn,m&quot;argument repeats the last &quot;n&quot; arguments in the following &quot;m&quot; slots.For example:dmsetup message switch 0 set_region_mappings 1000:1 :2 R2,10is equivalent todmsetup message switch 0 set_region_mappings 1000:1 :2 :1 :2 :1 :2 :1 :2 \:1 :2 :1 :2 :1 :2 :1 :2 :1 :2Requested-by: Jay Wang &lt;jwang@nimblestorage.com&gt;Tested-by: Jay Wang &lt;jwang@nimblestorage.com&gt;Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Mon, 28 Jul 2014 22:11:25 +0000</pubDate>
        <dc:creator>Mikulas Patocka &lt;mpatocka@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>99eb1908 - dm switch: factor out switch_region_table_read</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#99eb1908</link>
        <description>dm switch: factor out switch_region_table_readMove code that reads the table to a switch_region_table_read.It will be needed for the next commit.  No functional change.Tested-by: Jay Wang &lt;jwang@nimblestorage.com&gt;Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Mon, 28 Jul 2014 21:49:41 +0000</pubDate>
        <dc:creator>Mikulas Patocka &lt;mpatocka@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>4f024f37 - block: Abstract out bvec iterator</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/md/dm-switch.c#4f024f37</link>
        <description>block: Abstract out bvec iteratorImmutable biovecs are going to require an explicit iterator. Toimplement immutable bvecs, a later patch is going to add a bi_bvec_donemember to this struct; for now, this patch effectively just renamesthings.Signed-off-by: Kent Overstreet &lt;kmo@daterainc.com&gt;Cc: Jens Axboe &lt;axboe@kernel.dk&gt;Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;Cc: Paul Mackerras &lt;paulus@samba.org&gt;Cc: &quot;Ed L. Cashin&quot; &lt;ecashin@coraid.com&gt;Cc: Nick Piggin &lt;npiggin@kernel.dk&gt;Cc: Lars Ellenberg &lt;drbd-dev@lists.linbit.com&gt;Cc: Jiri Kosina &lt;jkosina@suse.cz&gt;Cc: Matthew Wilcox &lt;willy@linux.intel.com&gt;Cc: Geoff Levand &lt;geoff@infradead.org&gt;Cc: Yehuda Sadeh &lt;yehuda@inktank.com&gt;Cc: Sage Weil &lt;sage@inktank.com&gt;Cc: Alex Elder &lt;elder@inktank.com&gt;Cc: ceph-devel@vger.kernel.orgCc: Joshua Morris &lt;josh.h.morris@us.ibm.com&gt;Cc: Philip Kelleher &lt;pjk1939@linux.vnet.ibm.com&gt;Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;Cc: &quot;Michael S. Tsirkin&quot; &lt;mst@redhat.com&gt;Cc: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;Cc: Jeremy Fitzhardinge &lt;jeremy@goop.org&gt;Cc: Neil Brown &lt;neilb@suse.de&gt;Cc: Alasdair Kergon &lt;agk@redhat.com&gt;Cc: Mike Snitzer &lt;snitzer@redhat.com&gt;Cc: dm-devel@redhat.comCc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;Cc: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;Cc: linux390@de.ibm.comCc: Boaz Harrosh &lt;bharrosh@panasas.com&gt;Cc: Benny Halevy &lt;bhalevy@tonian.com&gt;Cc: &quot;James E.J. Bottomley&quot; &lt;JBottomley@parallels.com&gt;Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;Cc: &quot;Nicholas A. Bellinger&quot; &lt;nab@linux-iscsi.org&gt;Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;Cc: Chris Mason &lt;chris.mason@fusionio.com&gt;Cc: &quot;Theodore Ts&apos;o&quot; &lt;tytso@mit.edu&gt;Cc: Andreas Dilger &lt;adilger.kernel@dilger.ca&gt;Cc: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;Cc: Steven Whitehouse &lt;swhiteho@redhat.com&gt;Cc: Dave Kleikamp &lt;shaggy@kernel.org&gt;Cc: Joern Engel &lt;joern@logfs.org&gt;Cc: Prasad Joshi &lt;prasadjoshi.linux@gmail.com&gt;Cc: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;Cc: KONISHI Ryusuke &lt;konishi.ryusuke@lab.ntt.co.jp&gt;Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;Cc: Joel Becker &lt;jlbec@evilplan.org&gt;Cc: Ben Myers &lt;bpm@sgi.com&gt;Cc: xfs@oss.sgi.comCc: Steven Rostedt &lt;rostedt@goodmis.org&gt;Cc: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Len Brown &lt;len.brown@intel.com&gt;Cc: Pavel Machek &lt;pavel@ucw.cz&gt;Cc: &quot;Rafael J. Wysocki&quot; &lt;rjw@sisk.pl&gt;Cc: Herton Ronaldo Krzesinski &lt;herton.krzesinski@canonical.com&gt;Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;Cc: Guo Chao &lt;yan@linux.vnet.ibm.com&gt;Cc: Tejun Heo &lt;tj@kernel.org&gt;Cc: Asai Thambi S P &lt;asamymuthupa@micron.com&gt;Cc: Selvan Mani &lt;smani@micron.com&gt;Cc: Sam Bradshaw &lt;sbradshaw@micron.com&gt;Cc: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;Cc: &quot;Roger Pau Monn&#233;&quot; &lt;roger.pau@citrix.com&gt;Cc: Jan Beulich &lt;jbeulich@suse.com&gt;Cc: Stefano Stabellini &lt;stefano.stabellini@eu.citrix.com&gt;Cc: Ian Campbell &lt;Ian.Campbell@citrix.com&gt;Cc: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;Cc: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;Cc: Minchan Kim &lt;minchan@kernel.org&gt;Cc: Jiang Liu &lt;jiang.liu@huawei.com&gt;Cc: Nitin Gupta &lt;ngupta@vflare.org&gt;Cc: Jerome Marchand &lt;jmarchand@redhat.com&gt;Cc: Joe Perches &lt;joe@perches.com&gt;Cc: Peng Tao &lt;tao.peng@emc.com&gt;Cc: Andy Adamson &lt;andros@netapp.com&gt;Cc: fanchaoting &lt;fanchaoting@cn.fujitsu.com&gt;Cc: Jie Liu &lt;jeff.liu@oracle.com&gt;Cc: Sunil Mushran &lt;sunil.mushran@gmail.com&gt;Cc: &quot;Martin K. Petersen&quot; &lt;martin.petersen@oracle.com&gt;Cc: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;Cc: Pankaj Kumar &lt;pankaj.km@samsung.com&gt;Cc: Dan Magenheimer &lt;dan.magenheimer@oracle.com&gt;Cc: Mel Gorman &lt;mgorman@suse.de&gt;6

            List of files:
            /linux-6.15/drivers/md/dm-switch.c</description>
        <pubDate>Fri, 11 Oct 2013 22:44:27 +0000</pubDate>
        <dc:creator>Kent Overstreet &lt;kmo@daterainc.com&gt;</dc:creator>
    </item>
</channel>
</rss>
