From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f195.google.com ([209.85.192.195]:38906 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754231AbdJJVWv (ORCPT ); Tue, 10 Oct 2017 17:22:51 -0400 Received: by mail-pf0-f195.google.com with SMTP id h28so323640pfh.5 for ; Tue, 10 Oct 2017 14:22:50 -0700 (PDT) Date: Wed, 11 Oct 2017 06:22:45 +0900 Message-ID: <87bmleaeai.wl-satoru.takeuchi@gmail.com> From: Satoru Takeuchi To: "Misono, Tomohiro" Cc: linux-btrfs Subject: Re: [PATCH] btrfs-progs: doc: update help/document of btrfs device remove In-Reply-To: References: MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Sender: linux-btrfs-owner@vger.kernel.org List-ID: At Tue, 3 Oct 2017 17:12:39 +0900, Misono, Tomohiro wrote: > > This patch updates help/document of "btrfs device remove" in two points: > > 1. Add explanation of 'missing' for 'device remove'. This is only > written in wikipage currently. > (https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices) > > 2. Add example of device removal in the man document. This is because > that explanation of "remove" says "See the example section below", but > there is no example of removal currently. > > Signed-off-by: Tomohiro Misono > --- > Documentation/btrfs-device.asciidoc | 19 +++++++++++++++++++ > cmds-device.c | 10 +++++++++- > 2 files changed, 28 insertions(+), 1 deletion(-) > > diff --git a/Documentation/btrfs-device.asciidoc b/Documentation/btrfs-device.asciidoc > index 88822ec..dc523a9 100644 > --- a/Documentation/btrfs-device.asciidoc > +++ b/Documentation/btrfs-device.asciidoc > @@ -75,6 +75,10 @@ The operation can take long as it needs to move all data from the device. > It is possible to delete the device that was used to mount the filesystem. The > device entry in mount table will be replaced by another device name with the > lowest device id. > ++ > +If device is mounted as degraded mode (-o degraded), special term "missing" > +can be used for . In that case, the first device that is described by > +the filesystem metadata, but not presented at the mount time will be removed. > > *delete* | [|...] :: > Alias of remove kept for backward compatibility > @@ -206,6 +210,21 @@ data or the block groups occupy the whole first device. > The device size of '/dev/sdb' as seen by the filesystem remains unchanged, but > the logical space from 50-100GiB will be unused. > > +==== REMOVE DEVICE ==== It's a part of "TYPICAL USECASES" section. So it's also necessary to modify the following sentence === See the example section below. === to as follow. === See the *TYPICAL USECASES* section below. === Or just removing the above mentioned sentence is also OK since there is "See the section *TYPICAL USECASES* for some examples." in "DEVICE MANAGEMENT" section. > + > +Device removal must satisfy the profile constraints, otherwise the command > +fails. For example: > + > + $ btrfs device remove /dev/sda /mnt > + $ ERROR: error removing device '/dev/sda': unable to go below two devices on raid1 s/^$ ERROR/ERROR/ > + > + > +In order to remove a device, you need to convert profile in this case: > + > + $ btrfs balance start -mconvert=dup /mnt > + $ btrfs balance start -dconvert=single /mnt It's simpler to convert both the RAID configuration of data and metadata by the following one command. $ btrfs balance -mconvert=dup -dconvert=single /mnt > + $ btrfs device remove /dev/sda /mnt > + > DEVICE STATS > ------------ > > diff --git a/cmds-device.c b/cmds-device.c > index 4337eb2..6cb53ff 100644 > --- a/cmds-device.c > +++ b/cmds-device.c > @@ -224,9 +224,16 @@ static int _cmd_device_remove(int argc, char **argv, > return !!ret; > } > > +#define COMMON_USAGE_REMOVE_DELETE \ > + "", \ > + "If 'missing' is specified for , the first device that is", \ > + "described by the filesystem metadata, but not presented at the", \ > + "mount time will be removed." > + > static const char * const cmd_device_remove_usage[] = { > "btrfs device remove | [|...] ", > "Remove a device from a filesystem", > + COMMON_USAGE_REMOVE_DELETE, > NULL > }; > > @@ -237,7 +244,8 @@ static int cmd_device_remove(int argc, char **argv) > > static const char * const cmd_device_delete_usage[] = { > "btrfs device delete | [|...] ", > - "Remove a device from a filesystem", > + "Remove a device from a filesystem (alias of \"btrfs device remove\")", > + COMMON_USAGE_REMOVE_DELETE, > NULL > }; This snippet is not related to the description of this patch. Dividing this patch is better. Thanks, Satoru > > -- > 2.9.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html