1. 28 Dec, 2013 3 commits
    • Pablo Neira Ayuso's avatar
      netfilter: nf_tables: fix wrong datatype in nft_validate_data_load() · 2ee0d3c8
      Pablo Neira Ayuso authored
      This patch fixes dictionary mappings, eg.
      
       add rule ip filter input meta dnat set tcp dport map { 22 => 1.1.1.1, 23 => 2.2.2.2 }
      
      The kernel was returning -EINVAL in nft_validate_data_load() since
      the type of the set element data that is passed was the real userspace
      datatype instead of NFT_DATA_VALUE.
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      2ee0d3c8
    • Pablo Neira Ayuso's avatar
      netfilter: nf_tables: fix oops when updating table with user chains · d2012975
      Pablo Neira Ayuso authored
      This patch fixes a crash while trying to deactivate a table that
      contains user chains. You can reproduce it via:
      
      % nft add table table1
      % nft add chain table1 chain1
      % nft-table-upd ip table1 dormant
      
      [  253.021026] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
      [  253.021114] IP: [<ffffffff8134cebd>] nf_register_hook+0x35/0x6f
      [  253.021167] PGD 30fa5067 PUD 30fa2067 PMD 0
      [  253.021208] Oops: 0000 [#1] SMP
      [...]
      [  253.023305] Call Trace:
      [  253.023331]  [<ffffffffa0885020>] nf_tables_newtable+0x11c/0x258 [nf_tables]
      [  253.023385]  [<ffffffffa0878592>] nfnetlink_rcv_msg+0x1f4/0x226 [nfnetlink]
      [  253.023438]  [<ffffffffa0878418>] ? nfnetlink_rcv_msg+0x7a/0x226 [nfnetlink]
      [  253.023491]  [<ffffffffa087839e>] ? nfnetlink_bind+0x45/0x45 [nfnetlink]
      [  253.023542]  [<ffffffff8134b47e>] netlink_rcv_skb+0x3c/0x88
      [  253.023586]  [<ffffffffa0878973>] nfnetlink_rcv+0x3af/0x3e4 [nfnetlink]
      [  253.023638]  [<ffffffff813fb0d4>] ? _raw_read_unlock+0x22/0x34
      [  253.023683]  [<ffffffff8134af17>] netlink_unicast+0xe2/0x161
      [  253.023727]  [<ffffffff8134b29a>] netlink_sendmsg+0x304/0x332
      [  253.023773]  [<ffffffff8130d250>] __sock_sendmsg_nosec+0x25/0x27
      [  253.023820]  [<ffffffff8130fb93>] sock_sendmsg+0x5a/0x7b
      [  253.023861]  [<ffffffff8130d5d5>] ? copy_from_user+0x2a/0x2c
      [  253.023905]  [<ffffffff8131066f>] ? move_addr_to_kernel+0x35/0x60
      [  253.023952]  [<ffffffff813107b3>] SYSC_sendto+0x119/0x15c
      [  253.023995]  [<ffffffff81401107>] ? sysret_check+0x1b/0x56
      [  253.024039]  [<ffffffff8108dc30>] ? trace_hardirqs_on_caller+0x140/0x1db
      [  253.024090]  [<ffffffff8120164e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [  253.024141]  [<ffffffff81310caf>] SyS_sendto+0x9/0xb
      [  253.026219]  [<ffffffff814010e2>] system_call_fastpath+0x16/0x1b
      Reported-by: default avatarAlex Wei <alex.kern.mentor@gmail.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      d2012975
    • Pablo Neira Ayuso's avatar
      netfilter: nf_tables: fix dumping with large number of sets · e38195bf
      Pablo Neira Ayuso authored
      If not table name is specified, the dumping of the existing sets
      may be incomplete with a sufficiently large number of sets and
      tables. This patch fixes missing reset of the cursors after
      finding the location of the last object that has been included
      in the previous multi-part message.
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      e38195bf
  2. 27 Dec, 2013 2 commits
  3. 20 Dec, 2013 2 commits
    • Helmut Schaa's avatar
      netfilter: nf_ct_timestamp: Fix BUG_ON after netns deletion · 443d20fd
      Helmut Schaa authored
      When having nf_conntrack_timestamp enabled deleting a netns
      can lead to the following BUG being triggered:
      
      [63836.660000] Kernel bug detected[#1]:
      [63836.660000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.18 #14
      [63836.660000] task: 802d9420 ti: 802d2000 task.ti: 802d2000
      [63836.660000] $ 0   : 00000000 00000000 00000000 00000000
      [63836.660000] $ 4   : 00000001 00000004 00000020 00000020
      [63836.660000] $ 8   : 00000000 80064910 00000000 00000000
      [63836.660000] $12   : 0bff0002 00000001 00000000 0a0a0abe
      [63836.660000] $16   : 802e70a0 85f29d80 00000000 00000004
      [63836.660000] $20   : 85fb62a0 00000002 802d3bc0 85fb62a0
      [63836.660000] $24   : 00000000 87138110
      [63836.660000] $28   : 802d2000 802d3b40 00000014 871327cc
      [63836.660000] Hi    : 000005ff
      [63836.660000] Lo    : f2edd000
      [63836.660000] epc   : 87138794 __nf_ct_ext_add_length+0xe8/0x1ec [nf_conntrack]
      [63836.660000]     Not tainted
      [63836.660000] ra    : 871327cc nf_conntrack_in+0x31c/0x7b8 [nf_conntrack]
      [63836.660000] Status: 1100d403 KERNEL EXL IE
      [63836.660000] Cause : 00800034
      [63836.660000] PrId  : 0001974c (MIPS 74Kc)
      [63836.660000] Modules linked in: ath9k ath9k_common pppoe ppp_async iptable_nat ath9k_hw ath pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv4 mac80211 ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_quota xt_policy xt_pkttype xt_owner xt_nat xt_multiport xt_mark xh
      [63836.660000] Process swapper (pid: 0, threadinfo=802d2000, task=802d9420, tls=00000000)
      [63836.660000] Stack : 802e70a0 871323d4 00000005 87080234 802e70a0 86d2a840 00000000 00000000
      [63836.660000] Call Trace:
      [63836.660000] [<87138794>] __nf_ct_ext_add_length+0xe8/0x1ec [nf_conntrack]
      [63836.660000] [<871327cc>] nf_conntrack_in+0x31c/0x7b8 [nf_conntrack]
      [63836.660000] [<801ff63c>] nf_iterate+0x90/0xec
      [63836.660000] [<801ff730>] nf_hook_slow+0x98/0x164
      [63836.660000] [<80205968>] ip_rcv+0x3e8/0x40c
      [63836.660000] [<801d9754>] __netif_receive_skb_core+0x624/0x6a4
      [63836.660000] [<801da124>] process_backlog+0xa4/0x16c
      [63836.660000] [<801d9bb4>] net_rx_action+0x10c/0x1e0
      [63836.660000] [<8007c5a4>] __do_softirq+0xd0/0x1bc
      [63836.660000] [<8007c730>] do_softirq+0x48/0x68
      [63836.660000] [<8007c964>] irq_exit+0x54/0x70
      [63836.660000] [<80060830>] ret_from_irq+0x0/0x4
      [63836.660000] [<8006a9f8>] r4k_wait_irqoff+0x18/0x1c
      [63836.660000] [<8009cfb8>] cpu_startup_entry+0xa4/0x104
      [63836.660000] [<802eb918>] start_kernel+0x394/0x3ac
      [63836.660000]
      [63836.660000]
      Code: 00821021  8c420000  2c440001 <00040336> 90440011  92350010  90560010  2485ffff  02a5a821
      [63837.040000] ---[ end trace ebf660c3ce3b55e7 ]---
      [63837.050000] Kernel panic - not syncing: Fatal exception in interrupt
      [63837.050000] Rebooting in 3 seconds..
      
      Fix this by not unregistering the conntrack extension in the per-netns
      cleanup code.
      
      This bug was introduced in (73f4001a netfilter: nf_ct_tstamp: move
      initialization out of pernet_operations).
      Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      443d20fd
    • Daniel Borkmann's avatar
      netfilter: nft_exthdr: call ipv6_find_hdr() with explicitly initialized offset · 540436c8
      Daniel Borkmann authored
      In nft's nft_exthdr_eval() routine we process IPv6 extension header
      through invoking ipv6_find_hdr(), but we call it with an uninitialized
      offset variable that contains some stack value. In ipv6_find_hdr()
      we then test if the value of offset != 0 and call skb_header_pointer()
      on that offset in order to map struct ipv6hdr into it. Fix it up by
      initializing offset to 0 as it was probably intended to be.
      
      Fixes: 96518518 ("netfilter: add nftables")
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      540436c8
  4. 17 Dec, 2013 19 commits
  5. 15 Dec, 2013 10 commits
    • Linus Torvalds's avatar
      Linux 3.13-rc4 · 319e2e3f
      Linus Torvalds authored
      319e2e3f
    • Matias Bjorling's avatar
      null_blk: mem garbage on NUMA systems during init · 57053d8c
      Matias Bjorling authored
      For NUMA systems, initializing the blk-mq layer and using per node hctx.
      We initialize submit queues to 1, while blk-mq nr_hw_queues is
      initialized to the number of NUMA nodes.
      
      This makes the null_init_hctx function overwrite memory outside of what
      it allocated.  In my case it lead to writing garbage into struct
      request_queue's mq_map.
      Signed-off-by: default avatarMatias Bjorling <m@bjorling.me>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      57053d8c
    • Sergey Senozhatsky's avatar
      radeon_pm: fix oops in hwmon_attributes_visible() and radeon_hwmon_show_temp_thresh() · e4158f1b
      Sergey Senozhatsky authored
      Since commit ec39f64b ("drm/radeon/dpm: Convert to use
      devm_hwmon_register_with_groups") radeon_hwmon_init() is using
      hwmon_device_register_with_groups(), which sets `rdev' as a device
      private driver_data, while hwmon_attributes_visible() and
      radeon_hwmon_show_temp_thresh() are still waiting for `drm_device'.
      
      Fix them by using dev_get_drvdata(), in order to avoid this oops:
      
        BUG: unable to handle kernel paging request at 0000000000001e28
        IP: [<ffffffffa02ae8b4>] hwmon_attributes_visible+0x18/0x3d [radeon]
        PGD 15057e067 PUD 151a8e067 PMD 0
        Oops: 0000 [#1] PREEMPT SMP
        Call Trace:
          internal_create_group+0x114/0x1d9
          sysfs_create_group+0xe/0x10
          sysfs_create_groups+0x22/0x5f
          device_add+0x34f/0x501
          device_register+0x15/0x18
          hwmon_device_register_with_groups+0xb5/0xed
          radeon_hwmon_init+0x56/0x7c [radeon]
          radeon_pm_init+0x134/0x7e5 [radeon]
          radeon_modeset_init+0x75f/0x8ed [radeon]
          radeon_driver_load_kms+0xc6/0x187 [radeon]
          drm_dev_register+0xf9/0x1b4 [drm]
          drm_get_pci_dev+0x98/0x129 [drm]
          radeon_pci_probe+0xa3/0xac [radeon]
          pci_device_probe+0x6e/0xcf
          driver_probe_device+0x98/0x1c4
          __driver_attach+0x5c/0x7e
          bus_for_each_dev+0x7b/0x85
          driver_attach+0x19/0x1b
          bus_add_driver+0x104/0x1ce
          driver_register+0x89/0xc5
          __pci_register_driver+0x58/0x5b
          drm_pci_init+0x86/0xea [drm]
          radeon_init+0x97/0x1000 [radeon]
          do_one_initcall+0x7f/0x117
          load_module+0x1583/0x1bb4
          SyS_init_module+0xa0/0xaf
      Signed-off-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Alexander Deucher <Alexander.Deucher@amd.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e4158f1b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 4a251dd2
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Revert CHECKSUM_COMPLETE optimization in pskb_trim_rcsum(), I can't
          figure out why it breaks things.
      
       2) Fix comparison in netfilter ipset's hash_netnet4_data_equal(), it
          was basically doing "x == x", from Dave Jones.
      
       3) Freescale FEC driver was DMA mapping the wrong number of bytes, from
          Sebastian Siewior.
      
       4) Blackhole and prohibit routes in ipv6 were not doing the right thing
          because their ->input and ->output methods were not being assigned
          correctly.  Now they behave properly like their ipv4 counterparts.
          From Kamala R.
      
       5) Several drivers advertise the NETIF_F_FRAGLIST capability, but
          really do not support this feature and will send garbage packets if
          fed fraglist SKBs.  From Eric Dumazet.
      
       6) Fix long standing user triggerable BUG_ON over loopback in RDS
          protocol stack, from Venkat Venkatsubra.
      
       7) Several not so common code paths can potentially try to invoke
          packet scheduler actions that might be NULL without checking.  Shore
          things up by either 1) defining a method as mandatory and erroring
          on registration if that method is NULL 2) defininig a method as
          optional and the registration function hooks up a default
          implementation when NULL is seen.  From Jamal Hadi Salim.
      
       8) Fix fragment detection in xen-natback driver, from Paul Durrant.
      
       9) Kill dangling enter_memory_pressure method in cg_proto ops, from
          Eric W Biederman.
      
      10) SKBs that traverse namespaces should have their local_df cleared,
          from Hannes Frederic Sowa.
      
      11) IOCB file position is not being updated by macvtap_aio_read() and
          tun_chr_aio_read().  From Zhi Yong Wu.
      
      12) Don't free virtio_net netdev before releasing all of the NAPI
          instances.  From Andrey Vagin.
      
      13) Procfs entry leak in xt_hashlimit, from Sergey Popovich.
      
      14) IPv6 routes that are no cached routes should not count against the
          garbage collection limits.  We had this almost right, but were
          missing handling addrconf generated routes properly.  From Hannes
          Frederic Sowa.
      
      15) fib{4,6}_rule_suppress() have to consider potentially seeing NULL
          route info when they are called, from Stefan Tomanek.
      
      16) TUN and MACVTAP have had truncated packet signalling for some time,
          fix from Jason Wang.
      
      17) Fix use after frrr in __udp4_lib_rcv(), from Eric Dumazet.
      
      18) xen-netback does not interpret the NAPI budget properly for TX work,
          fix from Paul Durrant.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (132 commits)
        igb: Fix for issue where values could be too high for udelay function.
        i40e: fix null dereference
        xen-netback: fix gso_prefix check
        net: make neigh_priv_len in struct net_device 16bit instead of 8bit
        drivers: net: cpsw: fix for cpsw crash when build as modules
        xen-netback: napi: don't prematurely request a tx event
        xen-netback: napi: fix abuse of budget
        sch_tbf: use do_div() for 64-bit divide
        udp: ipv4: must add synchronization in udp_sk_rx_dst_set()
        net:fec: remove duplicate lines in comment about errata ERR006358
        Revert "8390 : Replace ei_debug with msg_enable/NETIF_MSG_* feature"
        8390 : Replace ei_debug with msg_enable/NETIF_MSG_* feature
        xen-netback: make sure skb linear area covers checksum field
        net: smc91x: Fix device tree based configuration so it's usable
        udp: ipv4: fix potential use after free in udp_v4_early_demux()
        macvtap: signal truncated packets
        tun: unbreak truncated packet signalling
        net: sched: htb: fix the calculation of quantum
        net: sched: tbf: fix the calculation of max_size
        micrel: add support for KSZ8041RNLI
        ...
      4a251dd2
    • Linus Torvalds's avatar
      Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 908bfda7
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "This is a pretty small batch:
      
        The biggest single change is to stop using EFI time services on 32-bit
        platforms.  This matches our current behavior on 64-bit platforms as
        we already had ruled them out there as being too unreliable.  Turns
        out that affects 32-bit platforms, too.
      
        One NULL pointer fix for SGI UV.
      
        Two minor build fixes, one of which only affects icc and the other
        which affects icc and future versions or nonstandard default settings
        of gcc"
      
      * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, efi: Don't use (U)EFI time services on 32 bit
        x86, build, icc: Remove uninitialized_var() from compiler-intel.h
        x86/UV: Fix NULL pointer dereference in uv_flush_tlb_others() if the 'nobau' boot option is used
        x86, build: Pass in additional -mno-mmx, -mno-sse options
      908bfda7
    • Linus Torvalds's avatar
      Merge tag 'pci-v3.13-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 9199c4ca
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
       "PCI device hotplug
          - Move device_del() from pci_stop_dev() to pci_destroy_dev() (Rafael
            Wysocki)
      
        Host bridge drivers
          - Update maintainers for DesignWare, i.MX6, Armada, R-Car (Bjorn
            Helgaas)
          - mvebu: Return 'unsupported' for Interrupt Line and Interrupt Pin
            (Jason Gunthorpe)
      
        Miscellaneous
          - Avoid unnecessary CPU switch when calling .probe() (Alexander
            Duyck)
          - Revert "workqueue: allow work_on_cpu() to be called recursively"
            (Bjorn Helgaas)
          - Disable Bus Master only on kexec reboot (Khalid Aziz)
          - Omit PCI ID macro strings to shorten quirk names for LTO (Michal
            Marek)"
      
      * tag 'pci-v3.13-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        MAINTAINERS: Add DesignWare, i.MX6, Armada, R-Car PCI host maintainers
        PCI: Disable Bus Master only on kexec reboot
        PCI: mvebu: Return 'unsupported' for Interrupt Line and Interrupt Pin
        PCI: Omit PCI ID macro strings to shorten quirk names
        PCI: Move device_del() from pci_stop_dev() to pci_destroy_dev()
        Revert "workqueue: allow work_on_cpu() to be called recursively"
        PCI: Avoid unnecessary CPU switch when calling driver .probe() method
      9199c4ca
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · b5745c59
      Linus Torvalds authored
      Pull SELinux fixes from James Morris.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        selinux: process labeled IPsec TCP SYN-ACK packets properly in selinux_ip_postroute()
        selinux: look for IPsec labels on both inbound and outbound packets
        selinux: handle TCP SYN-ACK packets correctly in selinux_ip_postroute()
        selinux: handle TCP SYN-ACK packets correctly in selinux_ip_output()
        selinux: fix possible memory leak
      b5745c59
    • Linus Torvalds's avatar
      Revert "selinux: consider filesystem subtype in policies" · 29b1deb2
      Linus Torvalds authored
      This reverts commit 102aefdd.
      
      Tom London reports that it causes sync() to hang on Fedora rawhide:
      
        https://bugzilla.redhat.com/show_bug.cgi?id=1033965
      
      and Josh Boyer bisected it down to this commit.  Reverting the commit in
      the rawhide kernel fixes the problem.
      
      Eric Paris root-caused it to incorrect subtype matching in that commit
      breaking fuse, and has a tentative patch, but by now we're better off
      retrying this in 3.14 rather than playing with it any more.
      Reported-by: default avatarTom London <selinux@gmail.com>
      Bisected-by: default avatarJosh Boyer <jwboyer@fedoraproject.org>
      Acked-by: default avatarEric Paris <eparis@redhat.com>
      Cc: James Morris <jmorris@namei.org>
      Cc: Anand Avati <avati@redhat.com>
      Cc: Paul Moore <paul@paul-moore.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      29b1deb2
    • Carolyn Wyborny's avatar
      igb: Fix for issue where values could be too high for udelay function. · df29df92
      Carolyn Wyborny authored
      This patch changes the igb_phy_has_link function to check the value of the
      parameter before deciding to use udelay or mdelay in order to be sure that
      the value is not too high for udelay function.
      
      CC: stable kernel <stable@vger.kernel.org> # 3.9+
      Signed-off-by: default avatarSunil K Pandey <sunil.k.pandey@intel.com>
      Signed-off-by: default avatarKevin B Smith <kevin.b.smith@intel.com>
      Signed-off-by: default avatarCarolyn Wyborny <carolyn.wyborny@intel.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      df29df92
    • Jesse Brandeburg's avatar
      i40e: fix null dereference · 3c325ced
      Jesse Brandeburg authored
      If the vsi->tx_rings structure is NULL we don't want to panic.
      
      Change-Id: Ic694f043701738c434e8ebe0caf0673f4410dc10
      Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Tested-by: default avatarKavindya Deegala <kavindya.s.deegala@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3c325ced
  6. 14 Dec, 2013 3 commits
  7. 13 Dec, 2013 1 commit
    • Linus Torvalds's avatar
      Merge tag 'dm-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 93e1585e
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
       "A set of device-mapper fixes for 3.13.
      
        A fix for possible memory corruption during DM table load, fix a
        possible leak of snapshot space in case of a crash, fix a possible
        deadlock due to a shared workqueue in the delay target, fix to
        initialize read-only module parameters that are used to export metrics
        for dm stats and dm bufio.
      
        Quite a few stable fixes were identified for both the thin-
        provisioning and caching targets as a result of increased regression
        testing using the device-mapper-test-suite (dmts).  The most notable
        of these are the reference counting fixes for the space map btree that
        is used by the dm-array interface -- without these the dm-cache
        metadata will leak, resulting in dm-cache devices running out of
        metadata blocks.  Also, some important fixes related to the
        thin-provisioning target's transition to read-only mode on error"
      
      * tag 'dm-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm array: fix a reference counting bug in shadow_ablock
        dm space map: disallow decrementing a reference count below zero
        dm stats: initialize read-only module parameter
        dm bufio: initialize read-only module parameters
        dm cache: actually resize cache
        dm cache: update Documentation for invalidate_cblocks's range syntax
        dm cache policy mq: fix promotions to occur as expected
        dm thin: allow pool in read-only mode to transition to read-write mode
        dm thin: re-establish read-only state when switching to fail mode
        dm thin: always fallback the pool mode if commit fails
        dm thin: switch to read-only mode if metadata space is exhausted
        dm thin: switch to read only mode if a mapping insert fails
        dm space map metadata: return on failure in sm_metadata_new_block
        dm table: fail dm_table_create on dm_round_up overflow
        dm snapshot: avoid snapshot space leak on crash
        dm delay: fix a possible deadlock due to shared workqueue
      93e1585e