mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-12-11 00:00:12 +03:00
cmd_device_evacuate: --force
Some checks failed
build / bcachefs-tools-deb (ubuntu-22.04) (push) Has been cancelled
build / bcachefs-tools-deb (ubuntu-24.04) (push) Has been cancelled
build / bcachefs-tools-rpm (push) Has been cancelled
build / bcachefs-tools-msrv (push) Has been cancelled
Nix Flake actions / nix-matrix (push) Has been cancelled
Nix Flake actions / ${{ matrix.name }} (${{ matrix.system }}) (push) Has been cancelled
Some checks failed
build / bcachefs-tools-deb (ubuntu-22.04) (push) Has been cancelled
build / bcachefs-tools-deb (ubuntu-24.04) (push) Has been cancelled
build / bcachefs-tools-rpm (push) Has been cancelled
build / bcachefs-tools-msrv (push) Has been cancelled
Nix Flake actions / nix-matrix (push) Has been cancelled
Nix Flake actions / ${{ matrix.name }} (${{ matrix.system }}) (push) Has been cancelled
We now take the --force option, like set-state, if the array will become degraded. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
e7cc6bb9cf
commit
7c0c6c812b
@ -290,6 +290,7 @@ static void device_evacuate_usage(void)
|
|||||||
"Usage: bcachefs device evacuate [OPTION]... device\n"
|
"Usage: bcachefs device evacuate [OPTION]... device\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Options:\n"
|
"Options:\n"
|
||||||
|
" -f, --force Force if data redundancy will be degraded\n"
|
||||||
" -h, --help Display this help and exit\n"
|
" -h, --help Display this help and exit\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Report bugs to <linux-bcachefs@vger.kernel.org>");
|
"Report bugs to <linux-bcachefs@vger.kernel.org>");
|
||||||
@ -298,13 +299,17 @@ static void device_evacuate_usage(void)
|
|||||||
static int cmd_device_evacuate(int argc, char *argv[])
|
static int cmd_device_evacuate(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
static const struct option longopts[] = {
|
static const struct option longopts[] = {
|
||||||
{ "help", 0, NULL, 'h' },
|
{ "force", no_argument, NULL, 'f' },
|
||||||
|
{ "help", no_argument, NULL, 'h' },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
int opt;
|
int opt, flags = 0;
|
||||||
|
|
||||||
while ((opt = getopt_long(argc, argv, "h", longopts, NULL)) != -1)
|
while ((opt = getopt_long(argc, argv, "fh", longopts, NULL)) != -1)
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
|
case 'f':
|
||||||
|
flags |= BCH_FORCE_IF_DEGRADED;
|
||||||
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
device_evacuate_usage();
|
device_evacuate_usage();
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
@ -325,7 +330,7 @@ static int cmd_device_evacuate(int argc, char *argv[])
|
|||||||
|
|
||||||
if (u->state == BCH_MEMBER_STATE_rw) {
|
if (u->state == BCH_MEMBER_STATE_rw) {
|
||||||
printf("Setting %s readonly\n", dev_path);
|
printf("Setting %s readonly\n", dev_path);
|
||||||
bchu_disk_set_state(fs, dev_idx, BCH_MEMBER_STATE_ro, 0);
|
bchu_disk_set_state(fs, dev_idx, BCH_MEMBER_STATE_ro, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(u);
|
free(u);
|
||||||
@ -349,8 +354,8 @@ static void device_set_state_usage(void)
|
|||||||
"<path>: path to mounted filesystem, optional unless specifying device by id\n"
|
"<path>: path to mounted filesystem, optional unless specifying device by id\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Options:\n"
|
"Options:\n"
|
||||||
" -f, --force Force, if data redundancy will be degraded\n"
|
" -f, --force Force if data redundancy will be degraded\n"
|
||||||
" --force-if-data-lost Force, if data will be lost\n"
|
" --force-if-data-lost Force if data will be lost\n"
|
||||||
" -o, --offline Set state of an offline device\n"
|
" -o, --offline Set state of an offline device\n"
|
||||||
" -h, --help display this help and exit\n"
|
" -h, --help display this help and exit\n"
|
||||||
"Report bugs to <linux-bcachefs@vger.kernel.org>");
|
"Report bugs to <linux-bcachefs@vger.kernel.org>");
|
||||||
@ -360,10 +365,10 @@ static void device_set_state_usage(void)
|
|||||||
static int cmd_device_set_state(int argc, char *argv[])
|
static int cmd_device_set_state(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
static const struct option longopts[] = {
|
static const struct option longopts[] = {
|
||||||
{ "force", 0, NULL, 'f' },
|
{ "force", no_argument, NULL, 'f' },
|
||||||
{ "force-if-data-lost", 0, NULL, 'F' },
|
{ "force-if-data-lost", no_argument, NULL, 'F' },
|
||||||
{ "offline", 0, NULL, 'o' },
|
{ "offline", no_argument, NULL, 'o' },
|
||||||
{ "help", 0, NULL, 'h' },
|
{ "help", no_argument, NULL, 'h' },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
struct bchfs_handle fs;
|
struct bchfs_handle fs;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user