* [PATCH RESEND v3 0/6] preparatory work to add device forget
@ 2018-01-09 14:13 Anand Jain
2018-01-09 14:13 ` [PATCH 1/6] btrfs: cleanup btrfs_free_stale_device() usage Anand Jain
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Anand Jain @ 2018-01-09 14:13 UTC (permalink / raw)
To: linux-btrfs
v2->v3:
@ 6/6:
add btrfs_free_stale_device() fn description, suggested by Nikolay
Fix line with longer than 80 char
v1->v2:
@ 6/6:
btrfs_device::name is null when we have missing device and
unmounted. So we still need to check for dev->name.
We can reuse the function btrfs_free_stale_device() to add feature
to forget a scanned device or all stale devices. So this patch set
proposes following changes to it.
Anand Jain (6):
btrfs: cleanup btrfs_free_stale_device() usage
btrfs: no need to check for btrfs_fs_devices::seeding
btrfs: make btrfs_free_stale_device() to delete all stales
btrfs: make btrfs_free_stale_device() argument optional
btrfs: make btrfs_free_stale_device() to search given path
btrfs: cleanup to make btrfs_free_stale_device() readable
fs/btrfs/volumes.c | 50 +++++++++++++++-----------------------------------
1 file changed, 15 insertions(+), 35 deletions(-)
--
2.7.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/6] btrfs: cleanup btrfs_free_stale_device() usage
2018-01-09 14:13 [PATCH RESEND v3 0/6] preparatory work to add device forget Anand Jain
@ 2018-01-09 14:13 ` Anand Jain
2018-01-09 16:18 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 2/6] btrfs: no need to check for btrfs_fs_devices::seeding Anand Jain
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Anand Jain @ 2018-01-09 14:13 UTC (permalink / raw)
To: linux-btrfs
We call btrfs_free_stale_device() only when we alloc a new
struct btrfs_device (ret=1), so move it closer to where we
alloc the new device. Also drop the comments.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
fs/btrfs/volumes.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 9a04245003ab..7e04cd509ab9 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -782,6 +782,7 @@ static noinline int device_list_add(const char *path,
ret = 1;
device->fs_devices = fs_devices;
+ btrfs_free_stale_device(device);
} else if (!device->name || strcmp(device->name->str, path)) {
/*
* When FS is already mounted.
@@ -840,13 +841,6 @@ static noinline int device_list_add(const char *path,
if (!fs_devices->opened)
device->generation = found_transid;
- /*
- * if there is new btrfs on an already registered device,
- * then remove the stale device entry.
- */
- if (ret > 0)
- btrfs_free_stale_device(device);
-
*fs_devices_ret = fs_devices;
return ret;
--
2.7.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/6] btrfs: no need to check for btrfs_fs_devices::seeding
2018-01-09 14:13 [PATCH RESEND v3 0/6] preparatory work to add device forget Anand Jain
2018-01-09 14:13 ` [PATCH 1/6] btrfs: cleanup btrfs_free_stale_device() usage Anand Jain
@ 2018-01-09 14:13 ` Anand Jain
2018-01-09 16:19 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 3/6] btrfs: make btrfs_free_stale_device() to iterate all stales Anand Jain
` (3 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Anand Jain @ 2018-01-09 14:13 UTC (permalink / raw)
To: linux-btrfs
There is no need to check for btrfs_fs_devices::seeding when we
have checked for btrfs_fs_devices::opened, because we can't sprout
without its seed FS being opened.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
fs/btrfs/volumes.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 7e04cd509ab9..ab6ccad08ef7 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -619,8 +619,6 @@ static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
if (fs_devs->opened)
continue;
- if (fs_devs->seeding)
- continue;
list_for_each_entry(dev, &fs_devs->devices, dev_list) {
--
2.7.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/6] btrfs: make btrfs_free_stale_device() to iterate all stales
2018-01-09 14:13 [PATCH RESEND v3 0/6] preparatory work to add device forget Anand Jain
2018-01-09 14:13 ` [PATCH 1/6] btrfs: cleanup btrfs_free_stale_device() usage Anand Jain
2018-01-09 14:13 ` [PATCH 2/6] btrfs: no need to check for btrfs_fs_devices::seeding Anand Jain
@ 2018-01-09 14:13 ` Anand Jain
2018-01-09 16:21 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 4/6] btrfs: make btrfs_free_stale_device() argument optional Anand Jain
` (2 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Anand Jain @ 2018-01-09 14:13 UTC (permalink / raw)
To: linux-btrfs
From: Anand Jain <Anand.Jain@oracle.com>
Let the list iterator iterate further and find other stale
devices and delete it. This is in preparation to add support
for user land request-able stale devices cleanup.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
fs/btrfs/volumes.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index ab6ccad08ef7..7b253da6c0a4 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -608,19 +608,20 @@ static void pending_bios_fn(struct btrfs_work *work)
static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
{
- struct btrfs_fs_devices *fs_devs;
- struct btrfs_device *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(fs_devs, &fs_uuids, list) {
- int del = 1;
+ list_for_each_entry_safe(fs_devs, tmp_fs_devs, &fs_uuids, list) {
if (fs_devs->opened)
continue;
- list_for_each_entry(dev, &fs_devs->devices, dev_list) {
+ list_for_each_entry_safe(dev, tmp_dev,
+ &fs_devs->devices, dev_list) {
+ int not_found;
if (dev == cur_dev)
continue;
@@ -634,14 +635,12 @@ static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
* either use mapper or non mapper path throughout.
*/
rcu_read_lock();
- del = strcmp(rcu_str_deref(dev->name),
+ not_found = strcmp(rcu_str_deref(dev->name),
rcu_str_deref(cur_dev->name));
rcu_read_unlock();
- if (!del)
- break;
- }
+ if (not_found)
+ continue;
- if (!del) {
/* delete the stale device */
if (fs_devs->num_devices == 1) {
btrfs_sysfs_remove_fsid(fs_devs);
@@ -652,7 +651,6 @@ static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
list_del(&dev->dev_list);
free_device(dev);
}
- break;
}
}
}
--
2.7.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 4/6] btrfs: make btrfs_free_stale_device() argument optional
2018-01-09 14:13 [PATCH RESEND v3 0/6] preparatory work to add device forget Anand Jain
` (2 preceding siblings ...)
2018-01-09 14:13 ` [PATCH 3/6] btrfs: make btrfs_free_stale_device() to iterate all stales Anand Jain
@ 2018-01-09 14:13 ` Anand Jain
2018-01-09 16:22 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 5/6] btrfs: make btrfs_free_stale_device() to match the path Anand Jain
2018-01-09 14:13 ` [PATCH 6/6] btrfs: cleanup to make btrfs_free_stale_device() readable Anand Jain
5 siblings, 1 reply; 13+ messages in thread
From: Anand Jain @ 2018-01-09 14:13 UTC (permalink / raw)
To: linux-btrfs
From: Anand Jain <Anand.Jain@oracle.com>
This updates btrfs_free_stale_device() helper function to delete all
unmouted devices, when arg is NULL.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
fs/btrfs/volumes.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 7b253da6c0a4..7646f8860096 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -611,9 +611,6 @@ static void btrfs_free_stale_device(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)
@@ -623,9 +620,7 @@ static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
&fs_devs->devices, dev_list) {
int not_found;
- if (dev == cur_dev)
- continue;
- if (!dev->name)
+ if (cur_dev && (cur_dev == dev || !dev->name))
continue;
/*
@@ -635,8 +630,11 @@ static void btrfs_free_stale_device(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));
+ else
+ not_found = 0;
rcu_read_unlock();
if (not_found)
continue;
--
2.7.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 5/6] btrfs: make btrfs_free_stale_device() to match the path
2018-01-09 14:13 [PATCH RESEND v3 0/6] preparatory work to add device forget Anand Jain
` (3 preceding siblings ...)
2018-01-09 14:13 ` [PATCH 4/6] btrfs: make btrfs_free_stale_device() argument optional Anand Jain
@ 2018-01-09 14:13 ` Anand Jain
2018-01-09 16:22 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 6/6] btrfs: cleanup to make btrfs_free_stale_device() readable Anand Jain
5 siblings, 1 reply; 13+ messages in thread
From: Anand Jain @ 2018-01-09 14:13 UTC (permalink / raw)
To: linux-btrfs
From: Anand Jain <Anand.Jain@oracle.com>
The btrfs_free_stale_device() is updated to match for the given
device path and delete it. (It searchs for only unmounted list of
devices.)
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
fs/btrfs/volumes.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 7646f8860096..f87d30aa0e18 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -606,7 +606,7 @@ static void pending_bios_fn(struct btrfs_work *work)
}
-static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
+static void btrfs_free_stale_device(struct btrfs_device *cur_dev, char *path)
{
struct btrfs_fs_devices *fs_devs, *tmp_fs_devs;
struct btrfs_device *dev, *tmp_dev;
@@ -633,6 +633,8 @@ static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
if (cur_dev)
not_found = strcmp(rcu_str_deref(dev->name),
rcu_str_deref(cur_dev->name));
+ else if (path)
+ not_found = strcmp(rcu_str_deref(dev->name), path);
else
not_found = 0;
rcu_read_unlock();
@@ -776,7 +778,7 @@ static noinline int device_list_add(const char *path,
ret = 1;
device->fs_devices = fs_devices;
- btrfs_free_stale_device(device);
+ btrfs_free_stale_device(device, NULL);
} else if (!device->name || strcmp(device->name->str, path)) {
/*
* When FS is already mounted.
--
2.7.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 6/6] btrfs: cleanup to make btrfs_free_stale_device() readable
2018-01-09 14:13 [PATCH RESEND v3 0/6] preparatory work to add device forget Anand Jain
` (4 preceding siblings ...)
2018-01-09 14:13 ` [PATCH 5/6] btrfs: make btrfs_free_stale_device() to match the path Anand Jain
@ 2018-01-09 14:13 ` Anand Jain
2018-01-09 16:24 ` Josef Bacik
5 siblings, 1 reply; 13+ messages in thread
From: Anand Jain @ 2018-01-09 14:13 UTC (permalink / raw)
To: linux-btrfs
From: Anand Jain <Anand.Jain@oracle.com>
Now as the there is path in arg, so instead of reading the path from
cur_device just get it from the caller, and so the purpose of cur_device
is to skip the device, so rename it to skip_dev. Also drop the comment
about different path being used for the same device, since now we will
have cli to clean any device that's not a concern any more.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
v3: add btrfs_free_stale_device() fn description, as suggested by
Nikolay
Fix line with longer than 80 char
v2: btrfs_device::name is null when we have missing device and
unmounted. So we still need to check for dev->name.
fs/btrfs/volumes.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index f87d30aa0e18..848824fe98a3 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -605,8 +605,17 @@ static void pending_bios_fn(struct btrfs_work *work)
run_scheduled_bios(device);
}
-
-static void btrfs_free_stale_device(struct btrfs_device *cur_dev, char *path)
+/*
+ * btrfs_free_stale_device()
+ * Search and remove all stale (devices which are not mounted) devices.
+ * When both inputs are NULL, it will search and release all stale devices.
+ * path: Optional. When provided will it release all unmounted devices
+ * matching this path only.
+ * skip_dev: Optional. Will skip this device when searching for the stale
+ * devices.
+ */
+static void btrfs_free_stale_device(const char *path,
+ struct btrfs_device *skip_dev)
{
struct btrfs_fs_devices *fs_devs, *tmp_fs_devs;
struct btrfs_device *dev, *tmp_dev;
@@ -620,20 +629,13 @@ static void btrfs_free_stale_device(struct btrfs_device *cur_dev, char *path)
&fs_devs->devices, dev_list) {
int not_found;
- if (cur_dev && (cur_dev == dev || !dev->name))
+ if (skip_dev && skip_dev == dev)
+ continue;
+ if (path && !dev->name)
continue;
- /*
- * Todo: This won't be enough. What if the same device
- * comes back (with new uuid and) with its mapper path?
- * But for now, this does help as mostly an admin will
- * either use mapper or non mapper path throughout.
- */
rcu_read_lock();
- if (cur_dev)
- not_found = strcmp(rcu_str_deref(dev->name),
- rcu_str_deref(cur_dev->name));
- else if (path)
+ if (path)
not_found = strcmp(rcu_str_deref(dev->name), path);
else
not_found = 0;
@@ -778,7 +780,7 @@ static noinline int device_list_add(const char *path,
ret = 1;
device->fs_devices = fs_devices;
- btrfs_free_stale_device(device, NULL);
+ btrfs_free_stale_device(path, device);
} else if (!device->name || strcmp(device->name->str, path)) {
/*
* When FS is already mounted.
--
2.7.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/6] btrfs: cleanup btrfs_free_stale_device() usage
2018-01-09 14:13 ` [PATCH 1/6] btrfs: cleanup btrfs_free_stale_device() usage Anand Jain
@ 2018-01-09 16:18 ` Josef Bacik
0 siblings, 0 replies; 13+ messages in thread
From: Josef Bacik @ 2018-01-09 16:18 UTC (permalink / raw)
To: Anand Jain; +Cc: linux-btrfs
On Tue, Jan 09, 2018 at 10:13:09PM +0800, Anand Jain wrote:
> We call btrfs_free_stale_device() only when we alloc a new
> struct btrfs_device (ret=1), so move it closer to where we
> alloc the new device. Also drop the comments.
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Thanks,
Josef
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/6] btrfs: no need to check for btrfs_fs_devices::seeding
2018-01-09 14:13 ` [PATCH 2/6] btrfs: no need to check for btrfs_fs_devices::seeding Anand Jain
@ 2018-01-09 16:19 ` Josef Bacik
0 siblings, 0 replies; 13+ messages in thread
From: Josef Bacik @ 2018-01-09 16:19 UTC (permalink / raw)
To: Anand Jain; +Cc: linux-btrfs
On Tue, Jan 09, 2018 at 10:13:10PM +0800, Anand Jain wrote:
> There is no need to check for btrfs_fs_devices::seeding when we
> have checked for btrfs_fs_devices::opened, because we can't sprout
> without its seed FS being opened.
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Thanks,
Josef
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/6] btrfs: make btrfs_free_stale_device() to iterate all stales
2018-01-09 14:13 ` [PATCH 3/6] btrfs: make btrfs_free_stale_device() to iterate all stales Anand Jain
@ 2018-01-09 16:21 ` Josef Bacik
0 siblings, 0 replies; 13+ messages in thread
From: Josef Bacik @ 2018-01-09 16:21 UTC (permalink / raw)
To: Anand Jain; +Cc: linux-btrfs
On Tue, Jan 09, 2018 at 10:13:11PM +0800, Anand Jain wrote:
> From: Anand Jain <Anand.Jain@oracle.com>
>
> Let the list iterator iterate further and find other stale
> devices and delete it. This is in preparation to add support
> for user land request-able stale devices cleanup.
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
If we're going to do this then please change the function name to
btrfs_free_stale_devices() so it's clear what its intentions are. Thanks,
Josef
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/6] btrfs: make btrfs_free_stale_device() argument optional
2018-01-09 14:13 ` [PATCH 4/6] btrfs: make btrfs_free_stale_device() argument optional Anand Jain
@ 2018-01-09 16:22 ` Josef Bacik
0 siblings, 0 replies; 13+ messages in thread
From: Josef Bacik @ 2018-01-09 16:22 UTC (permalink / raw)
To: Anand Jain; +Cc: linux-btrfs
On Tue, Jan 09, 2018 at 10:13:12PM +0800, Anand Jain wrote:
> From: Anand Jain <Anand.Jain@oracle.com>
>
> This updates btrfs_free_stale_device() helper function to delete all
> unmouted devices, when arg is NULL.
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
> fs/btrfs/volumes.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
> index 7b253da6c0a4..7646f8860096 100644
> --- a/fs/btrfs/volumes.c
> +++ b/fs/btrfs/volumes.c
> @@ -611,9 +611,6 @@ static void btrfs_free_stale_device(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)
> @@ -623,9 +620,7 @@ static void btrfs_free_stale_device(struct btrfs_device *cur_dev)
> &fs_devs->devices, dev_list) {
> int not_found;
Change this to
int not_found = 0;
>
> - if (dev == cur_dev)
> - continue;
> - if (!dev->name)
> + if (cur_dev && (cur_dev == dev || !dev->name))
> continue;
>
> /*
> @@ -635,8 +630,11 @@ static void btrfs_free_stale_device(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));
> + else
> + not_found = 0;
And drop the else part of this. Thanks,
Josef
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 5/6] btrfs: make btrfs_free_stale_device() to match the path
2018-01-09 14:13 ` [PATCH 5/6] btrfs: make btrfs_free_stale_device() to match the path Anand Jain
@ 2018-01-09 16:22 ` Josef Bacik
0 siblings, 0 replies; 13+ messages in thread
From: Josef Bacik @ 2018-01-09 16:22 UTC (permalink / raw)
To: Anand Jain; +Cc: linux-btrfs
On Tue, Jan 09, 2018 at 10:13:13PM +0800, Anand Jain wrote:
> From: Anand Jain <Anand.Jain@oracle.com>
>
> The btrfs_free_stale_device() is updated to match for the given
> device path and delete it. (It searchs for only unmounted list of
> devices.)
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Thanks,
Josef
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 6/6] btrfs: cleanup to make btrfs_free_stale_device() readable
2018-01-09 14:13 ` [PATCH 6/6] btrfs: cleanup to make btrfs_free_stale_device() readable Anand Jain
@ 2018-01-09 16:24 ` Josef Bacik
0 siblings, 0 replies; 13+ messages in thread
From: Josef Bacik @ 2018-01-09 16:24 UTC (permalink / raw)
To: Anand Jain; +Cc: linux-btrfs
On Tue, Jan 09, 2018 at 10:13:14PM +0800, Anand Jain wrote:
> From: Anand Jain <Anand.Jain@oracle.com>
>
> Now as the there is path in arg, so instead of reading the path from
> cur_device just get it from the caller, and so the purpose of cur_device
> is to skip the device, so rename it to skip_dev. Also drop the comment
> about different path being used for the same device, since now we will
> have cli to clean any device that's not a concern any more.
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
Wait you added char *path, and then changed it to device here? Just drop the
previous patch and do this one. Thanks,
Josef
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2018-01-09 16:24 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-09 14:13 [PATCH RESEND v3 0/6] preparatory work to add device forget Anand Jain
2018-01-09 14:13 ` [PATCH 1/6] btrfs: cleanup btrfs_free_stale_device() usage Anand Jain
2018-01-09 16:18 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 2/6] btrfs: no need to check for btrfs_fs_devices::seeding Anand Jain
2018-01-09 16:19 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 3/6] btrfs: make btrfs_free_stale_device() to iterate all stales Anand Jain
2018-01-09 16:21 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 4/6] btrfs: make btrfs_free_stale_device() argument optional Anand Jain
2018-01-09 16:22 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 5/6] btrfs: make btrfs_free_stale_device() to match the path Anand Jain
2018-01-09 16:22 ` Josef Bacik
2018-01-09 14:13 ` [PATCH 6/6] btrfs: cleanup to make btrfs_free_stale_device() readable Anand Jain
2018-01-09 16:24 ` Josef Bacik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).