diff options
author | Anand Jain <Anand.Jain@oracle.com> | 2018-01-18 22:00:35 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-01-22 20:25:48 +0100 |
commit | 522f1b45e41d893e4d1debd7f80c1e25e060c137 (patch) | |
tree | 1a39dffd709f946d5f2b6c2d197c37888f39357d /fs/btrfs | |
parent | 38cf665d338fca33af4b16f9ec7cad6637fc0fec (diff) | |
download | linux-stable-522f1b45e41d893e4d1debd7f80c1e25e060c137.tar.gz linux-stable-522f1b45e41d893e4d1debd7f80c1e25e060c137.tar.bz2 linux-stable-522f1b45e41d893e4d1debd7f80c1e25e060c137.zip |
btrfs: make btrfs_free_stale_devices() argument optional
This updates btrfs_free_stale_devices() helper function to delete all
unmouted devices, when arg is NULL.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/volumes.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 207014fce7ea..9712377862d9 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -610,9 +610,6 @@ static void btrfs_free_stale_devices(struct btrfs_device *cur_dev) struct btrfs_fs_devices *fs_devs, *tmp_fs_devs; struct btrfs_device *dev, *tmp_dev; - if (!cur_dev->name) - return; - list_for_each_entry_safe(fs_devs, tmp_fs_devs, &fs_uuids, list) { if (fs_devs->opened) @@ -620,11 +617,9 @@ static void btrfs_free_stale_devices(struct btrfs_device *cur_dev) list_for_each_entry_safe(dev, tmp_dev, &fs_devs->devices, dev_list) { - int not_found; + int not_found = 0; - if (dev == cur_dev) - continue; - if (!dev->name) + if (cur_dev && (cur_dev == dev || !dev->name)) continue; /* @@ -634,8 +629,9 @@ static void btrfs_free_stale_devices(struct btrfs_device *cur_dev) * either use mapper or non mapper path throughout. */ rcu_read_lock(); - not_found = strcmp(rcu_str_deref(dev->name), - rcu_str_deref(cur_dev->name)); + if (cur_dev) + not_found = strcmp(rcu_str_deref(dev->name), + rcu_str_deref(cur_dev->name)); rcu_read_unlock(); if (not_found) continue; |