[gparted] Recognise NVME devices (#755022)



commit 66bb88abf7c3ef33445f8eaa1d3fa6f00950bde3
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date:   Wed Sep 16 20:25:58 2015 +0100

    Recognise NVME devices (#755022)
    
    Add a pattern to recognise Non-Volatile Memory Express devices as valid
    devices to work with.  Devices are named by the Linux kernel device
    driver like /dev/nvme0n1 [1] with partitions named like /dev/nvme0n1p1
    [2].
    
    [1] linux 3.3 drivers/block/nvme.c nvme_alloc_ns()
        
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/block/nvme.c?id=v3.3#n1351
    
    [2] Contents of /proc/partitions for a partitioned NVME device
        $ grep nvme /proc/partitions
         259        0  390711384 nvme0n1
         259        1        977 nvme0n1p1
         259        2   31250000 nvme0n1p2
         259        3  328209496 nvme0n1p3
         259        4   31249408 nvme0n1p4
    
    Bug 755022 - gparted doesn't recognize nvme devices

 src/Proc_Partitions_Info.cc |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/src/Proc_Partitions_Info.cc b/src/Proc_Partitions_Info.cc
index 595cdb2..f17f689 100644
--- a/src/Proc_Partitions_Info.cc
+++ b/src/Proc_Partitions_Info.cc
@@ -99,6 +99,14 @@ void Proc_Partitions_Info::load_proc_partitions_info_cache()
                        //E.g., device = /dev/mmcblk0, partition = /dev/mmcblk0p1
                        if ( device == "" )
                                device = Utils::regexp_label(line, "^[\t ]+[0-9]+[\t ]+[0-9]+[\t ]+[0-9]+[\t 
]+(mmcblk[0-9]+)$") ;
+
+                       // Recognise /dev/nvme*n* devices
+                       // (Non-Volatile Memory Express devices.  SSD type devices which
+                       // plug directly into PCIe sockets).
+                       // E.g., device = /dev/nvme0n1, partition = /dev/nvme0n1p1
+                       if ( device == "" )
+                               device = Utils::regexp_label(line, "^[\t ]+[0-9]+[\t ]+[0-9]+[\t ]+[0-9]+[\t 
]+(nvme[0-9]+n[0-9]+)$");
+
                        //Device names that end with a #[^p]# are HP Smart Array Devices (disks)
                        //  E.g., device = /dev/cciss/c0d0, partition = /dev/cciss/c0d0p1
                        //  (linux-x.y.z/Documentation/blockdev/cciss.txt)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]