]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: improve device scanning messages
authorAnand Jain <anand.jain@oracle.com>
Thu, 3 Sep 2020 13:30:12 +0000 (21:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Nov 2020 10:43:26 +0000 (11:43 +0100)
commit 79dae17d8d44b2d15779e332180080af45df5352 upstream.

Systems booting without the initramfs seems to scan an unusual kind
of device path (/dev/root). And at a later time, the device is updated
to the correct path. We generally print the process name and PID of the
process scanning the device but we don't capture the same information if
the device path is rescanned with a different pathname.

The current message is too long, so drop the unnecessary UUID and add
process name and PID.

While at this also update the duplicate device warning to include the
process name and PID so the messages are consistent

CC: stable@vger.kernel.org # 4.19+
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=89721
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/volumes.c

index e798caee978e70bff5540483aad5ce37de3f916c..76a9374403351a601936a8cff1ce314c8c16aa31 100644 (file)
@@ -1123,16 +1123,18 @@ static noinline struct btrfs_device *device_list_add(const char *path,
                                bdput(path_bdev);
                                mutex_unlock(&fs_devices->device_list_mutex);
                                btrfs_warn_in_rcu(device->fs_info,
-                       "duplicate device fsid:devid for %pU:%llu old:%s new:%s",
-                                       disk_super->fsid, devid,
-                                       rcu_str_deref(device->name), path);
+       "duplicate device %s devid %llu generation %llu scanned by %s (%d)",
+                                                 path, devid, found_transid,
+                                                 current->comm,
+                                                 task_pid_nr(current));
                                return ERR_PTR(-EEXIST);
                        }
                        bdput(path_bdev);
                        btrfs_info_in_rcu(device->fs_info,
-                               "device fsid %pU devid %llu moved old:%s new:%s",
-                               disk_super->fsid, devid,
-                               rcu_str_deref(device->name), path);
+       "devid %llu device path %s changed to %s scanned by %s (%d)",
+                                         devid, rcu_str_deref(device->name),
+                                         path, current->comm,
+                                         task_pid_nr(current));
                }
 
                name = rcu_string_strdup(path, GFP_NOFS);