* [PATCH 0/2] btrfs-progs: move inode cache removal functionality to "btrfs rescue" group
@ 2023-10-09 4:46 Qu Wenruo
2023-10-09 4:46 ` [PATCH 1/2] btrfs-progs: move clear-cache.[ch] from check to common directory Qu Wenruo
2023-10-09 4:47 ` [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group Qu Wenruo
0 siblings, 2 replies; 6+ messages in thread
From: Qu Wenruo @ 2023-10-09 4:46 UTC (permalink / raw)
To: linux-btrfs
This is the first step to move those cache clearing functionality to
"btrfs rescue", as "btrfs check" doesn't looks that proper just to clear
various cache.
This patchset is handling issue #669 by moving the rarely used inode
cache clearing to "btrfs rescue" as the safe and first step.
Qu Wenruo (2):
btrfs-progs: move clear-cache.[ch] from check to common directory
btrfs-progs: move inode cache removal to rescue group
Documentation/btrfs-check.rst | 5 +++-
Documentation/btrfs-rescue.rst | 6 ++++
Makefile | 6 ++--
check/main.c | 3 +-
cmds/rescue.c | 52 +++++++++++++++++++++++++++++++++
{check => common}/clear-cache.c | 2 +-
{check => common}/clear-cache.h | 0
convert/main.c | 2 +-
tune/main.c | 2 +-
9 files changed, 70 insertions(+), 8 deletions(-)
rename {check => common}/clear-cache.c (99%)
rename {check => common}/clear-cache.h (100%)
--
2.42.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] btrfs-progs: move clear-cache.[ch] from check to common directory
2023-10-09 4:46 [PATCH 0/2] btrfs-progs: move inode cache removal functionality to "btrfs rescue" group Qu Wenruo
@ 2023-10-09 4:46 ` Qu Wenruo
2023-10-09 4:47 ` [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group Qu Wenruo
1 sibling, 0 replies; 6+ messages in thread
From: Qu Wenruo @ 2023-10-09 4:46 UTC (permalink / raw)
To: linux-btrfs
The clear-cache functionality is not shared by several commands:
- btrfs check
For --clear-cache and --clear-ino-cache.
- btrfstune
Mostly for block-group-tree feature conversion.
- btrfs-convert
To enable the now default v2 space cache.
Thus it's no longer proper to keep clea-cache.[ch] under check/
directory, move them to common/ directory.
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
Makefile | 6 +++---
check/main.c | 2 +-
{check => common}/clear-cache.c | 2 +-
{check => common}/clear-cache.h | 0
convert/main.c | 2 +-
tune/main.c | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
rename {check => common}/clear-cache.c (99%)
rename {check => common}/clear-cache.h (100%)
diff --git a/Makefile b/Makefile
index e5817f1456a2..345c8efc8249 100644
--- a/Makefile
+++ b/Makefile
@@ -242,7 +242,7 @@ cmds_objects = cmds/subvolume.o cmds/subvolume-list.o \
cmds/inspect-dump-super.o cmds/inspect-tree-stats.o cmds/filesystem-du.o \
cmds/reflink.o \
mkfs/common.o check/mode-common.o check/mode-lowmem.o \
- check/clear-cache.o
+ common/clear-cache.o
libbtrfs_objects = \
kernel-lib/rbtree.o \
@@ -262,12 +262,12 @@ libbtrfsutil_objects = libbtrfsutil/errors.o libbtrfsutil/filesystem.o \
libbtrfsutil/stubs.o
convert_objects = convert/main.o convert/common.o convert/source-fs.o \
convert/source-ext2.o convert/source-reiserfs.o \
- mkfs/common.o check/clear-cache.o
+ mkfs/common.o common/clear-cache.o
mkfs_objects = mkfs/main.o mkfs/common.o mkfs/rootdir.o
image_objects = image/main.o image/sanitize.o image/image-create.o image/common.o \
image/image-restore.o
tune_objects = tune/main.o tune/seeding.o tune/change-uuid.o tune/change-metadata-uuid.o \
- tune/convert-bgt.o tune/change-csum.o check/clear-cache.o tune/quota.o
+ tune/convert-bgt.o tune/change-csum.o common/clear-cache.o tune/quota.o
all_objects = $(objects) $(cmds_objects) $(libbtrfs_objects) $(convert_objects) \
$(mkfs_objects) $(image_objects) $(tune_objects) $(libbtrfsutil_objects)
diff --git a/check/main.c b/check/main.c
index be27ee5f2415..1174939fd6eb 100644
--- a/check/main.c
+++ b/check/main.c
@@ -58,6 +58,7 @@
#include "common/help.h"
#include "common/open-utils.h"
#include "common/string-utils.h"
+#include "common/clear-cache.h"
#include "cmds/commands.h"
#include "mkfs/common.h"
#include "check/common.h"
@@ -66,7 +67,6 @@
#include "check/mode-original.h"
#include "check/mode-lowmem.h"
#include "check/qgroup-verify.h"
-#include "check/clear-cache.h"
/* Global context variables */
struct btrfs_fs_info *gfs_info;
diff --git a/check/clear-cache.c b/common/clear-cache.c
similarity index 99%
rename from check/clear-cache.c
rename to common/clear-cache.c
index d83d9b2fcda8..d57313b783c0 100644
--- a/check/clear-cache.c
+++ b/common/clear-cache.c
@@ -33,7 +33,7 @@
#include "common/messages.h"
#include "check/repair.h"
#include "check/mode-common.h"
-#include "check/clear-cache.h"
+#include "common/clear-cache.h"
/*
* Number of free space cache inodes to delete in one transaction.
diff --git a/check/clear-cache.h b/common/clear-cache.h
similarity index 100%
rename from check/clear-cache.h
rename to common/clear-cache.h
diff --git a/convert/main.c b/convert/main.c
index 5d7c1e1d99d6..c9e50c036f92 100644
--- a/convert/main.c
+++ b/convert/main.c
@@ -119,9 +119,9 @@
#include "common/box.h"
#include "common/open-utils.h"
#include "common/extent-tree-utils.h"
+#include "common/clear-cache.h"
#include "cmds/commands.h"
#include "check/repair.h"
-#include "check/clear-cache.h"
#include "mkfs/common.h"
#include "convert/common.h"
#include "convert/source-fs.h"
diff --git a/tune/main.c b/tune/main.c
index 08dedce26cb5..4aef76748343 100644
--- a/tune/main.c
+++ b/tune/main.c
@@ -37,9 +37,9 @@
#include "common/string-utils.h"
#include "common/help.h"
#include "common/box.h"
+#include "common/clear-cache.h"
#include "cmds/commands.h"
#include "tune/tune.h"
-#include "check/clear-cache.h"
static char *device;
static int force = 0;
--
2.42.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group
2023-10-09 4:46 [PATCH 0/2] btrfs-progs: move inode cache removal functionality to "btrfs rescue" group Qu Wenruo
2023-10-09 4:46 ` [PATCH 1/2] btrfs-progs: move clear-cache.[ch] from check to common directory Qu Wenruo
@ 2023-10-09 4:47 ` Qu Wenruo
2023-10-09 14:23 ` David Sterba
1 sibling, 1 reply; 6+ messages in thread
From: Qu Wenruo @ 2023-10-09 4:47 UTC (permalink / raw)
To: linux-btrfs
The option "--clear-ino-cache" is not really that suitable for "btrfs
check" group.
Let's move it to "btrfs rescue" group to fix those small hiccups, just
like the existing "btrfs rescue fix-device-size" command.
For now, "btrfs check --clear-ino-cache" would still work, with one
extra warning referring to "btrfs rescue clear-ino-cache".
This is mostly to reduce the surprise, and keep script users (I doubt if
there is any though) happy for now.
In the next or two releases, we would fully remove the support in "btrfs
check" group.
Another small change is, in the documents, we refer to the feature as
"inode map", which doesn't match with the mount option documents.
Since we're here, unify them to "inode cache" feature.
Issue: #669
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
Documentation/btrfs-check.rst | 5 +++-
Documentation/btrfs-rescue.rst | 6 ++++
check/main.c | 1 +
cmds/rescue.c | 52 ++++++++++++++++++++++++++++++++++
4 files changed, 63 insertions(+), 1 deletion(-)
diff --git a/Documentation/btrfs-check.rst b/Documentation/btrfs-check.rst
index cf8de9fcc888..3c5f96f1951f 100644
--- a/Documentation/btrfs-check.rst
+++ b/Documentation/btrfs-check.rst
@@ -84,8 +84,11 @@ SAFE OR ADVISORY OPTIONS
See also the *clear_cache* mount option.
--clear-ino-cache
- remove leftover items pertaining to the deprecated inode map feature
+ remove leftover items pertaining to the deprecated `inode cache` feature
+ .. warning::
+ This option is deprecated, please use `btrfs rescue clear-ino-cache`
+ instead, this option would be removed in the future eventually.
DANGEROUS OPTIONS
-----------------
diff --git a/Documentation/btrfs-rescue.rst b/Documentation/btrfs-rescue.rst
index 39d250cefa48..e99aa4ad8a7e 100644
--- a/Documentation/btrfs-rescue.rst
+++ b/Documentation/btrfs-rescue.rst
@@ -50,6 +50,12 @@ fix-device-size <device>
WARNING: CPU: 3 PID: 439 at fs/btrfs/ctree.h:1559 btrfs_update_device+0x1c5/0x1d0 [btrfs]
+clear-ino-cache <device>
+ Remove leftover items pertaining to the deprecated `inode cache` feature.
+
+ The `inode cache` feature (enabled by mount option "inode_cache") is
+ fully removed in v5.11 kernel.
+
clear-uuid-tree <device>
Clear UUID tree, so that kernel can re-generate it at next read-write
mount.
diff --git a/check/main.c b/check/main.c
index 1174939fd6eb..7760511b85d9 100644
--- a/check/main.c
+++ b/check/main.c
@@ -10242,6 +10242,7 @@ static int cmd_check(const struct cmd_struct *cmd, int argc, char **argv)
}
if (clear_ino_cache) {
+ warning("--clear-ino-cache option is deprecated, please use \"btrfs rescue clear-ino-cache\" instead.")
ret = clear_ino_cache_items(gfs_info);
err = ret;
goto close_out;
diff --git a/cmds/rescue.c b/cmds/rescue.c
index be6f5016d5a9..38f4e1423434 100644
--- a/cmds/rescue.c
+++ b/cmds/rescue.c
@@ -34,6 +34,7 @@
#include "common/utils.h"
#include "common/help.h"
#include "common/open-utils.h"
+#include "common/clear-cache.h"
#include "cmds/commands.h"
#include "cmds/rescue.h"
@@ -405,6 +406,56 @@ out:
}
static DEFINE_SIMPLE_COMMAND(rescue_clear_uuid_tree, "clear-uuid-tree");
+static const char * const cmd_rescue_clear_ino_cache_usage[] = {
+ "btrfs rescue clear-ino-cache <device>",
+ "remove leftover items pertaining to the deprecated inode cache feature",
+ NULL
+};
+
+static int cmd_rescue_clear_ino_cache(const struct cmd_struct *cmd,
+ int argc, char **argv)
+{
+ struct open_ctree_args oca = { 0 };
+ struct btrfs_fs_info *fs_info;
+ char *devname;
+ int ret;
+
+ clean_args_no_options(cmd, argc, argv);
+
+ if (check_argc_exact(argc, 2))
+ return 1;
+
+ devname = argv[optind];
+ ret = check_mounted(devname);
+ if (ret < 0) {
+ errno = -ret;
+ error("could not check mount status: %m");
+ goto out;
+ } else if (ret) {
+ error("%s is currently mounted", devname);
+ ret = -EBUSY;
+ goto out;
+ }
+ oca.filename = devname;
+ oca.flags = OPEN_CTREE_WRITES;
+ fs_info = open_ctree_fs_info(&oca);
+ if (!fs_info) {
+ error("could not open btrfs");
+ ret = -EIO;
+ goto out;
+ }
+ ret = clear_ino_cache_items(fs_info);
+ if (ret < 0) {
+ errno = -ret;
+ error("failed to clear ino cache: %m");
+ } else {
+ pr_verbose(LOG_DEFAULT, "Successfully cleared ino cache");
+ }
+out:
+ return !!ret;
+}
+static DEFINE_SIMPLE_COMMAND(rescue_clear_ino_cache, "clear-ino-cache");
+
static const char rescue_cmd_group_info[] =
"toolbox for specific rescue operations";
@@ -416,6 +467,7 @@ static const struct cmd_group rescue_cmd_group = {
&cmd_struct_rescue_fix_device_size,
&cmd_struct_rescue_create_control_device,
&cmd_struct_rescue_clear_uuid_tree,
+ &cmd_struct_rescue_clear_ino_cache,
NULL
}
};
--
2.42.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group
2023-10-09 4:47 ` [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group Qu Wenruo
@ 2023-10-09 14:23 ` David Sterba
2023-10-09 20:50 ` Qu Wenruo
0 siblings, 1 reply; 6+ messages in thread
From: David Sterba @ 2023-10-09 14:23 UTC (permalink / raw)
To: Qu Wenruo; +Cc: linux-btrfs
On Mon, Oct 09, 2023 at 03:17:00PM +1030, Qu Wenruo wrote:
> The option "--clear-ino-cache" is not really that suitable for "btrfs
> check" group.
>
> Let's move it to "btrfs rescue" group to fix those small hiccups, just
> like the existing "btrfs rescue fix-device-size" command.
>
> For now, "btrfs check --clear-ino-cache" would still work, with one
> extra warning referring to "btrfs rescue clear-ino-cache".
> This is mostly to reduce the surprise, and keep script users (I doubt if
> there is any though) happy for now.
>
> In the next or two releases, we would fully remove the support in "btrfs
> check" group.
>
> Another small change is, in the documents, we refer to the feature as
> "inode map", which doesn't match with the mount option documents.
> Since we're here, unify them to "inode cache" feature.
>
> Issue: #669
> Signed-off-by: Qu Wenruo <wqu@suse.com>
Please don't forget to add the new command to btrfs-completion. I've
noticed 2 more were missing so it's done in a separate commit.
> ---
> Documentation/btrfs-check.rst | 5 +++-
> Documentation/btrfs-rescue.rst | 6 ++++
> check/main.c | 1 +
> cmds/rescue.c | 52 ++++++++++++++++++++++++++++++++++
> 4 files changed, 63 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/btrfs-check.rst b/Documentation/btrfs-check.rst
> index cf8de9fcc888..3c5f96f1951f 100644
> --- a/Documentation/btrfs-check.rst
> +++ b/Documentation/btrfs-check.rst
> @@ -84,8 +84,11 @@ SAFE OR ADVISORY OPTIONS
> See also the *clear_cache* mount option.
>
> --clear-ino-cache
> - remove leftover items pertaining to the deprecated inode map feature
> + remove leftover items pertaining to the deprecated `inode cache` feature
>
> + .. warning::
> + This option is deprecated, please use `btrfs rescue clear-ino-cache`
> + instead, this option would be removed in the future eventually.
>
> DANGEROUS OPTIONS
> -----------------
> diff --git a/Documentation/btrfs-rescue.rst b/Documentation/btrfs-rescue.rst
> index 39d250cefa48..e99aa4ad8a7e 100644
> --- a/Documentation/btrfs-rescue.rst
> +++ b/Documentation/btrfs-rescue.rst
> @@ -50,6 +50,12 @@ fix-device-size <device>
>
> WARNING: CPU: 3 PID: 439 at fs/btrfs/ctree.h:1559 btrfs_update_device+0x1c5/0x1d0 [btrfs]
>
> +clear-ino-cache <device>
> + Remove leftover items pertaining to the deprecated `inode cache` feature.
> +
> + The `inode cache` feature (enabled by mount option "inode_cache") is
> + fully removed in v5.11 kernel.
> +
> clear-uuid-tree <device>
> Clear UUID tree, so that kernel can re-generate it at next read-write
> mount.
> diff --git a/check/main.c b/check/main.c
> index 1174939fd6eb..7760511b85d9 100644
> --- a/check/main.c
> +++ b/check/main.c
> @@ -10242,6 +10242,7 @@ static int cmd_check(const struct cmd_struct *cmd, int argc, char **argv)
> }
>
> if (clear_ino_cache) {
> + warning("--clear-ino-cache option is deprecated, please use \"btrfs rescue clear-ino-cache\" instead.")
No "." at the end of the text and the ";" is missing, does not
compile.
> ret = clear_ino_cache_items(gfs_info);
> err = ret;
> goto close_out;
> diff --git a/cmds/rescue.c b/cmds/rescue.c
> index be6f5016d5a9..38f4e1423434 100644
> --- a/cmds/rescue.c
> +++ b/cmds/rescue.c
> @@ -34,6 +34,7 @@
> #include "common/utils.h"
> #include "common/help.h"
> #include "common/open-utils.h"
> +#include "common/clear-cache.h"
> #include "cmds/commands.h"
> #include "cmds/rescue.h"
>
> @@ -405,6 +406,56 @@ out:
> }
> static DEFINE_SIMPLE_COMMAND(rescue_clear_uuid_tree, "clear-uuid-tree");
>
> +static const char * const cmd_rescue_clear_ino_cache_usage[] = {
> + "btrfs rescue clear-ino-cache <device>",
> + "remove leftover items pertaining to the deprecated inode cache feature",
> + NULL
> +};
> +
> +static int cmd_rescue_clear_ino_cache(const struct cmd_struct *cmd,
> + int argc, char **argv)
> +{
> + struct open_ctree_args oca = { 0 };
> + struct btrfs_fs_info *fs_info;
> + char *devname;
> + int ret;
> +
> + clean_args_no_options(cmd, argc, argv);
> +
> + if (check_argc_exact(argc, 2))
> + return 1;
> +
> + devname = argv[optind];
> + ret = check_mounted(devname);
> + if (ret < 0) {
> + errno = -ret;
> + error("could not check mount status: %m");
> + goto out;
> + } else if (ret) {
> + error("%s is currently mounted", devname);
> + ret = -EBUSY;
> + goto out;
> + }
> + oca.filename = devname;
> + oca.flags = OPEN_CTREE_WRITES;
> + fs_info = open_ctree_fs_info(&oca);
> + if (!fs_info) {
> + error("could not open btrfs");
> + ret = -EIO;
> + goto out;
> + }
> + ret = clear_ino_cache_items(fs_info);
> + if (ret < 0) {
> + errno = -ret;
> + error("failed to clear ino cache: %m");
> + } else {
> + pr_verbose(LOG_DEFAULT, "Successfully cleared ino cache");
> + }
> +out:
> + return !!ret;
> +}
> +static DEFINE_SIMPLE_COMMAND(rescue_clear_ino_cache, "clear-ino-cache");
> +
> static const char rescue_cmd_group_info[] =
> "toolbox for specific rescue operations";
>
> @@ -416,6 +467,7 @@ static const struct cmd_group rescue_cmd_group = {
> &cmd_struct_rescue_fix_device_size,
> &cmd_struct_rescue_create_control_device,
> &cmd_struct_rescue_clear_uuid_tree,
> + &cmd_struct_rescue_clear_ino_cache,
> NULL
> }
> };
> --
> 2.42.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group
2023-10-09 14:23 ` David Sterba
@ 2023-10-09 20:50 ` Qu Wenruo
2023-10-09 22:47 ` David Sterba
0 siblings, 1 reply; 6+ messages in thread
From: Qu Wenruo @ 2023-10-09 20:50 UTC (permalink / raw)
To: dsterba; +Cc: linux-btrfs
On 2023/10/10 00:53, David Sterba wrote:
> On Mon, Oct 09, 2023 at 03:17:00PM +1030, Qu Wenruo wrote:
>> The option "--clear-ino-cache" is not really that suitable for "btrfs
>> check" group.
>>
>> Let's move it to "btrfs rescue" group to fix those small hiccups, just
>> like the existing "btrfs rescue fix-device-size" command.
>>
>> For now, "btrfs check --clear-ino-cache" would still work, with one
>> extra warning referring to "btrfs rescue clear-ino-cache".
>> This is mostly to reduce the surprise, and keep script users (I doubt if
>> there is any though) happy for now.
>>
>> In the next or two releases, we would fully remove the support in "btrfs
>> check" group.
>>
>> Another small change is, in the documents, we refer to the feature as
>> "inode map", which doesn't match with the mount option documents.
>> Since we're here, unify them to "inode cache" feature.
>>
>> Issue: #669
>> Signed-off-by: Qu Wenruo <wqu@suse.com>
>
> Please don't forget to add the new command to btrfs-completion. I've
> noticed 2 more were missing so it's done in a separate commit.
>
>> ---
>> Documentation/btrfs-check.rst | 5 +++-
>> Documentation/btrfs-rescue.rst | 6 ++++
>> check/main.c | 1 +
>> cmds/rescue.c | 52 ++++++++++++++++++++++++++++++++++
>> 4 files changed, 63 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/btrfs-check.rst b/Documentation/btrfs-check.rst
>> index cf8de9fcc888..3c5f96f1951f 100644
>> --- a/Documentation/btrfs-check.rst
>> +++ b/Documentation/btrfs-check.rst
>> @@ -84,8 +84,11 @@ SAFE OR ADVISORY OPTIONS
>> See also the *clear_cache* mount option.
>>
>> --clear-ino-cache
>> - remove leftover items pertaining to the deprecated inode map feature
>> + remove leftover items pertaining to the deprecated `inode cache` feature
>>
>> + .. warning::
>> + This option is deprecated, please use `btrfs rescue clear-ino-cache`
>> + instead, this option would be removed in the future eventually.
>>
>> DANGEROUS OPTIONS
>> -----------------
>> diff --git a/Documentation/btrfs-rescue.rst b/Documentation/btrfs-rescue.rst
>> index 39d250cefa48..e99aa4ad8a7e 100644
>> --- a/Documentation/btrfs-rescue.rst
>> +++ b/Documentation/btrfs-rescue.rst
>> @@ -50,6 +50,12 @@ fix-device-size <device>
>>
>> WARNING: CPU: 3 PID: 439 at fs/btrfs/ctree.h:1559 btrfs_update_device+0x1c5/0x1d0 [btrfs]
>>
>> +clear-ino-cache <device>
>> + Remove leftover items pertaining to the deprecated `inode cache` feature.
>> +
>> + The `inode cache` feature (enabled by mount option "inode_cache") is
>> + fully removed in v5.11 kernel.
>> +
>> clear-uuid-tree <device>
>> Clear UUID tree, so that kernel can re-generate it at next read-write
>> mount.
>> diff --git a/check/main.c b/check/main.c
>> index 1174939fd6eb..7760511b85d9 100644
>> --- a/check/main.c
>> +++ b/check/main.c
>> @@ -10242,6 +10242,7 @@ static int cmd_check(const struct cmd_struct *cmd, int argc, char **argv)
>> }
>>
>> if (clear_ino_cache) {
>> + warning("--clear-ino-cache option is deprecated, please use \"btrfs rescue clear-ino-cache\" instead.")
>
> No "." at the end of the text and the ";" is missing, does not
> compile.
My bad, I noticed the warning is missing thus added it in the last minute...
Do I need to resend or you have already fixed it during merge?
Thanks,
Qu
>
>> ret = clear_ino_cache_items(gfs_info);
>> err = ret;
>> goto close_out;
>> diff --git a/cmds/rescue.c b/cmds/rescue.c
>> index be6f5016d5a9..38f4e1423434 100644
>> --- a/cmds/rescue.c
>> +++ b/cmds/rescue.c
>> @@ -34,6 +34,7 @@
>> #include "common/utils.h"
>> #include "common/help.h"
>> #include "common/open-utils.h"
>> +#include "common/clear-cache.h"
>> #include "cmds/commands.h"
>> #include "cmds/rescue.h"
>>
>> @@ -405,6 +406,56 @@ out:
>> }
>> static DEFINE_SIMPLE_COMMAND(rescue_clear_uuid_tree, "clear-uuid-tree");
>>
>> +static const char * const cmd_rescue_clear_ino_cache_usage[] = {
>> + "btrfs rescue clear-ino-cache <device>",
>> + "remove leftover items pertaining to the deprecated inode cache feature",
>> + NULL
>> +};
>> +
>> +static int cmd_rescue_clear_ino_cache(const struct cmd_struct *cmd,
>> + int argc, char **argv)
>> +{
>> + struct open_ctree_args oca = { 0 };
>> + struct btrfs_fs_info *fs_info;
>> + char *devname;
>> + int ret;
>> +
>> + clean_args_no_options(cmd, argc, argv);
>> +
>> + if (check_argc_exact(argc, 2))
>> + return 1;
>> +
>> + devname = argv[optind];
>> + ret = check_mounted(devname);
>> + if (ret < 0) {
>> + errno = -ret;
>> + error("could not check mount status: %m");
>> + goto out;
>> + } else if (ret) {
>> + error("%s is currently mounted", devname);
>> + ret = -EBUSY;
>> + goto out;
>> + }
>> + oca.filename = devname;
>> + oca.flags = OPEN_CTREE_WRITES;
>> + fs_info = open_ctree_fs_info(&oca);
>> + if (!fs_info) {
>> + error("could not open btrfs");
>> + ret = -EIO;
>> + goto out;
>> + }
>> + ret = clear_ino_cache_items(fs_info);
>> + if (ret < 0) {
>> + errno = -ret;
>> + error("failed to clear ino cache: %m");
>> + } else {
>> + pr_verbose(LOG_DEFAULT, "Successfully cleared ino cache");
>> + }
>> +out:
>> + return !!ret;
>> +}
>> +static DEFINE_SIMPLE_COMMAND(rescue_clear_ino_cache, "clear-ino-cache");
>> +
>> static const char rescue_cmd_group_info[] =
>> "toolbox for specific rescue operations";
>>
>> @@ -416,6 +467,7 @@ static const struct cmd_group rescue_cmd_group = {
>> &cmd_struct_rescue_fix_device_size,
>> &cmd_struct_rescue_create_control_device,
>> &cmd_struct_rescue_clear_uuid_tree,
>> + &cmd_struct_rescue_clear_ino_cache,
>> NULL
>> }
>> };
>> --
>> 2.42.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group
2023-10-09 20:50 ` Qu Wenruo
@ 2023-10-09 22:47 ` David Sterba
0 siblings, 0 replies; 6+ messages in thread
From: David Sterba @ 2023-10-09 22:47 UTC (permalink / raw)
To: Qu Wenruo; +Cc: dsterba, linux-btrfs
On Tue, Oct 10, 2023 at 07:20:58AM +1030, Qu Wenruo wrote:
> On 2023/10/10 00:53, David Sterba wrote:
> > On Mon, Oct 09, 2023 at 03:17:00PM +1030, Qu Wenruo wrote:
> >> --- a/check/main.c
> >> +++ b/check/main.c
> >> @@ -10242,6 +10242,7 @@ static int cmd_check(const struct cmd_struct *cmd, int argc, char **argv)
> >> }
> >>
> >> if (clear_ino_cache) {
> >> + warning("--clear-ino-cache option is deprecated, please use \"btrfs rescue clear-ino-cache\" instead.")
> >
> > No "." at the end of the text and the ";" is missing, does not
> > compile.
>
> My bad, I noticed the warning is missing thus added it in the last minute...
>
> Do I need to resend or you have already fixed it during merge?
No need to resend.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-10-09 22:54 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-09 4:46 [PATCH 0/2] btrfs-progs: move inode cache removal functionality to "btrfs rescue" group Qu Wenruo
2023-10-09 4:46 ` [PATCH 1/2] btrfs-progs: move clear-cache.[ch] from check to common directory Qu Wenruo
2023-10-09 4:47 ` [PATCH 2/2] btrfs-progs: move inode cache removal to rescue group Qu Wenruo
2023-10-09 14:23 ` David Sterba
2023-10-09 20:50 ` Qu Wenruo
2023-10-09 22:47 ` David Sterba
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).