| From 79dae17d8d44b2d15779e332180080af45df5352 Mon Sep 17 00:00:00 2001 |
| From: Anand Jain <anand.jain@oracle.com> |
| Date: Thu, 3 Sep 2020 21:30:12 +0800 |
| Subject: btrfs: improve device scanning messages |
| |
| From: Anand Jain <anand.jain@oracle.com> |
| |
| 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 | 14 ++++++++------ |
| 1 file changed, 8 insertions(+), 6 deletions(-) |
| |
| --- a/fs/btrfs/volumes.c |
| +++ b/fs/btrfs/volumes.c |
| @@ -942,16 +942,18 @@ static noinline struct btrfs_device *dev |
| 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); |