* [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-04-20 10:29 [PATCH] device delete by devid Anand Jain
@ 2015-04-20 10:29 ` Anand Jain
0 siblings, 0 replies; 10+ messages in thread
From: Anand Jain @ 2015-04-20 10:29 UTC (permalink / raw)
To: linux-btrfs; +Cc: dsterba, m_btrfs
This patch introduces new option <devid> for the command
btrfs device delete <device_path|devid>[..] <mnt>
In a user reported issue on a 3-disk-RAID1, one disk failed with its
SB unreadable. Now with this patch user will have a choice to delete
the device using devid.
The other method we could do, is to match the input device_path
to the available device_paths with in the kernel. But that won't
work in all the cases, like what if user provided mapper path
when the path within the kernel is a non-mapper path.
This patch depends on the below kernel patch for the new feature to work,
however it will fail-back to the old interface for the kernel without the
patch
Btrfs: device delete by devid
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
Documentation/btrfs-device.txt | 2 +-
cmds-device.c | 47 ++++++++++++++++++++++++++++++++----------
ioctl.h | 8 +++++++
3 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/Documentation/btrfs-device.txt b/Documentation/btrfs-device.txt
index 66be6b3..4bb5ea5 100644
--- a/Documentation/btrfs-device.txt
+++ b/Documentation/btrfs-device.txt
@@ -74,7 +74,7 @@ do not perform discard by default
-f|--force::::
force overwrite of existing filesystem on the given disk(s)
-*delete* <dev> [<dev>...] <path>::
+*delete* <dev>|<devid> [<dev>|<devid>...] <path>::
Remove device(s) from a filesystem identified by <path>.
*ready* <device>::
diff --git a/cmds-device.c b/cmds-device.c
index 1c32771..69e79d4 100644
--- a/cmds-device.c
+++ b/cmds-device.c
@@ -145,7 +145,7 @@ error_out:
}
static const char * const cmd_rm_dev_usage[] = {
- "btrfs device delete <device> [<device>...] <path>",
+ "btrfs device delete <device>|<devid> [<device>|<devid>...] <path>",
"Remove a device from a filesystem",
NULL
};
@@ -169,26 +169,51 @@ static int cmd_rm_dev(int argc, char **argv)
for(i=1 ; i < argc - 1; i++ ){
struct btrfs_ioctl_vol_args arg;
+ struct btrfs_ioctl_vol_args_v3 argv3 = {0};
int res;
+ int its_num = false;
- if (!is_block_device(argv[i])) {
+ if (is_numerical(argv[i])) {
+ argv3.devid = arg_strtou64(argv[i]);
+ its_num = true;
+ } else if (is_block_device(argv[i])) {
+ strncpy_null(argv3.name, argv[i]);
+ } else {
fprintf(stderr,
- "ERROR: %s is not a block device\n", argv[i]);
+ "ERROR: %s is not a block device or devid\n", argv[i]);
ret++;
continue;
}
- strncpy_null(arg.name, argv[i]);
- res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
+ res = ioctl(fdmnt, BTRFS_IOC_RM_DEV_V2, &argv3);
e = errno;
+ if (res && e == ENOTTY) {
+ if (its_num) {
+ fprintf(stderr, "Error: Kernel does not support delete by devid\n");
+ continue;
+ }
+ strncpy_null(arg.name, argv[i]);
+ res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
+ e = errno;
+ }
if (res > 0) {
- fprintf(stderr,
- "ERROR: error removing the device '%s' - %s\n",
- argv[i], btrfs_err_str(res));
+ if (its_num)
+ fprintf(stderr,
+ "ERROR: removing the devid '%llu' - %s\n",
+ argv3.devid, btrfs_err_str(res));
+ else
+ fprintf(stderr,
+ "ERROR: removing the device '%s' - %s\n",
+ argv[i], btrfs_err_str(res));
ret++;
} else if (res < 0) {
- fprintf(stderr,
- "ERROR: ioctl error removing the device '%s' - %s\n",
- argv[i], strerror(e));
+ if (its_num)
+ fprintf(stderr,
+ "ERROR: ioctl removing the devid '%llu' - %s\n",
+ argv3.devid, strerror(e));
+ else
+ fprintf(stderr,
+ "ERROR: ioctl removing the device '%s' - %s\n",
+ argv[i], strerror(e));
ret++;
}
}
diff --git a/ioctl.h b/ioctl.h
index d550ca6..4354c37 100644
--- a/ioctl.h
+++ b/ioctl.h
@@ -37,6 +37,12 @@ struct btrfs_ioctl_vol_args {
char name[BTRFS_PATH_NAME_MAX + 1];
};
+struct btrfs_ioctl_vol_args_v3 {
+ __s64 fd;
+ char name[BTRFS_PATH_NAME_MAX + 1];
+ __u64 devid;
+};
+
#define BTRFS_DEVICE_PATH_NAME_MAX 1024
#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
@@ -621,6 +627,8 @@ struct btrfs_ioctl_clone_range_args {
struct btrfs_ioctl_feature_flags[2])
#define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
struct btrfs_ioctl_feature_flags[3])
+#define BTRFS_IOC_RM_DEV_V2 _IOW(BTRFS_IOCTL_MAGIC, 58, \
+ struct btrfs_ioctl_vol_args_v3)
#ifdef __cplusplus
}
#endif
--
2.0.0.153.g79dcccc
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 0/2] Btrfs-progs: device delete to accept devid
@ 2015-08-14 10:36 Anand Jain
2015-08-14 10:36 ` [PATCH 1/2] btrfs-progs: move is_numerical to utils-lib.h and make it non static Anand Jain
2015-08-14 10:36 ` [PATCH 2/2] btrfs-progs: device delete to accept devid Anand Jain
0 siblings, 2 replies; 10+ messages in thread
From: Anand Jain @ 2015-08-14 10:36 UTC (permalink / raw)
To: linux-btrfs; +Cc: clm, dsterba
This is btrfs-progs side of the patch.
Kernel patch is
Btrfs: device delete by devid
Anand Jain (2):
btrfs-progs: move is_numerical to utils-lib.h and make it non static
btrfs-progs: device delete to accept devid
Documentation/btrfs-device.asciidoc | 2 +-
cmds-device.c | 45 ++++++++++++++++++++++++++++---------
cmds-replace.c | 11 ---------
ioctl.h | 8 +++++++
utils-lib.c | 11 +++++++++
utils.h | 1 +
6 files changed, 56 insertions(+), 22 deletions(-)
--
2.4.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] btrfs-progs: move is_numerical to utils-lib.h and make it non static
2015-08-14 10:36 [PATCH 0/2] Btrfs-progs: device delete to accept devid Anand Jain
@ 2015-08-14 10:36 ` Anand Jain
2015-08-14 10:36 ` [PATCH 2/2] btrfs-progs: device delete to accept devid Anand Jain
1 sibling, 0 replies; 10+ messages in thread
From: Anand Jain @ 2015-08-14 10:36 UTC (permalink / raw)
To: linux-btrfs; +Cc: clm, dsterba
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
cmds-replace.c | 11 -----------
utils-lib.c | 11 +++++++++++
utils.h | 1 +
3 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/cmds-replace.c b/cmds-replace.c
index 85365e3..e6a27e3 100644
--- a/cmds-replace.c
+++ b/cmds-replace.c
@@ -65,17 +65,6 @@ static const char * const replace_cmd_group_usage[] = {
NULL
};
-static int is_numerical(const char *str)
-{
- if (!(*str >= '0' && *str <= '9'))
- return 0;
- while (*str >= '0' && *str <= '9')
- str++;
- if (*str != '\0')
- return 0;
- return 1;
-}
-
static int dev_replace_cancel_fd = -1;
static void dev_replace_sigint_handler(int signal)
{
diff --git a/utils-lib.c b/utils-lib.c
index 79ef35e..9ac0b7b 100644
--- a/utils-lib.c
+++ b/utils-lib.c
@@ -38,3 +38,14 @@ u64 arg_strtou64(const char *str)
}
return value;
}
+
+int is_numerical(const char *str)
+{
+ if (!(*str >= '0' && *str <= '9'))
+ return 0;
+ while (*str >= '0' && *str <= '9')
+ str++;
+ if (*str != '\0')
+ return 0;
+ return 1;
+}
diff --git a/utils.h b/utils.h
index 94606ed..0975301 100644
--- a/utils.h
+++ b/utils.h
@@ -243,5 +243,6 @@ int btrfs_tree_search2_ioctl_supported(int fd);
int btrfs_check_nodesize(u32 nodesize, u32 sectorsize);
const char *get_argv0_buf(void);
+int is_numerical(const char *str);
#endif
--
2.4.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-08-14 10:36 [PATCH 0/2] Btrfs-progs: device delete to accept devid Anand Jain
2015-08-14 10:36 ` [PATCH 1/2] btrfs-progs: move is_numerical to utils-lib.h and make it non static Anand Jain
@ 2015-08-14 10:36 ` Anand Jain
2015-08-17 7:00 ` Goffredo Baroncelli
2015-08-20 11:29 ` Goffredo Baroncelli
1 sibling, 2 replies; 10+ messages in thread
From: Anand Jain @ 2015-08-14 10:36 UTC (permalink / raw)
To: linux-btrfs; +Cc: clm, dsterba
This patch introduces new option <devid> for the command
btrfs device delete <device_path|devid>[..] <mnt>
In a user reported issue on a 3-disk-RAID1, one disk failed with its
SB unreadable. Now with this patch user will have a choice to delete
the device using devid.
The other method we could do, is to match the input device_path
to the available device_paths with in the kernel. But that won't
work in all the cases, like what if user provided mapper path
when the path within the kernel is a non-mapper path.
This patch depends on the below kernel patch for the new feature to work,
however it will fail-back to the old interface for the kernel without the
patch
Btrfs: device delete by devid
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
Documentation/btrfs-device.asciidoc | 2 +-
cmds-device.c | 45 ++++++++++++++++++++++++++++---------
ioctl.h | 8 +++++++
3 files changed, 44 insertions(+), 11 deletions(-)
diff --git a/Documentation/btrfs-device.asciidoc b/Documentation/btrfs-device.asciidoc
index 2827598..61ede6e 100644
--- a/Documentation/btrfs-device.asciidoc
+++ b/Documentation/btrfs-device.asciidoc
@@ -74,7 +74,7 @@ do not perform discard by default
-f|--force::::
force overwrite of existing filesystem on the given disk(s)
-*remove* <dev> [<dev>...] <path>::
+*remove* <dev>|<devid> [<dev>|<devid>...] <path>::
Remove device(s) from a filesystem identified by <path>.
*delete* <dev> [<dev>...] <path>::
diff --git a/cmds-device.c b/cmds-device.c
index 0e60500..eb4358d 100644
--- a/cmds-device.c
+++ b/cmds-device.c
@@ -164,16 +164,34 @@ static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
struct btrfs_ioctl_vol_args arg;
int res;
- if (!is_block_device(argv[i])) {
+ struct btrfs_ioctl_vol_args_v3 argv3 = {0};
+ int its_num = false;
+
+ if (is_numerical(argv[i])) {
+ argv3.devid = arg_strtou64(argv[i]);
+ its_num = true;
+ } else if (is_block_device(argv[i])) {
+ strncpy_null(argv3.name, argv[i]);
+ } else {
fprintf(stderr,
- "ERROR: %s is not a block device\n", argv[i]);
+ "ERROR: %s is not a block device or devid\n", argv[i]);
ret++;
continue;
}
- memset(&arg, 0, sizeof(arg));
- strncpy_null(arg.name, argv[i]);
- res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
+ res = ioctl(fdmnt, BTRFS_IOC_RM_DEV_V2, &argv3);
e = errno;
+ if (res && e == ENOTTY) {
+ if (its_num) {
+ fprintf(stderr,
+ "Error: Kernel does not support delete by devid\n");
+ ret = 1;
+ continue;
+ }
+ memset(&arg, 0, sizeof(arg));
+ strncpy_null(arg.name, argv[i]);
+ res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
+ e = errno;
+ }
if (res) {
const char *msg;
@@ -181,9 +199,16 @@ static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
msg = btrfs_err_str(res);
else
msg = strerror(e);
- fprintf(stderr,
- "ERROR: error removing the device '%s' - %s\n",
- argv[i], msg);
+
+ if (its_num)
+ fprintf(stderr,
+ "ERROR: error removing the devid '%llu' - %s\n",
+ argv3.devid, msg);
+ else
+ fprintf(stderr,
+ "ERROR: error removing the device '%s' - %s\n",
+ argv[i], msg);
+
ret++;
}
}
@@ -193,7 +218,7 @@ static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
}
static const char * const cmd_rm_dev_usage[] = {
- "btrfs device remove <device> [<device>...] <path>",
+ "btrfs device remove <device>|<devid> [<device>|<devid>...] <path>",
"Remove a device from a filesystem",
NULL
};
@@ -204,7 +229,7 @@ static int cmd_rm_dev(int argc, char **argv)
}
static const char * const cmd_del_dev_usage[] = {
- "btrfs device delete <device> [<device>...] <path>",
+ "btrfs device delete <device>|<devid> [<device>|<devid>...] <path>",
"Remove a device from a filesystem",
NULL
};
diff --git a/ioctl.h b/ioctl.h
index dff015a..6870931 100644
--- a/ioctl.h
+++ b/ioctl.h
@@ -40,6 +40,12 @@ struct btrfs_ioctl_vol_args {
char name[BTRFS_PATH_NAME_MAX + 1];
};
+struct btrfs_ioctl_vol_args_v3 {
+ __s64 fd;
+ char name[BTRFS_PATH_NAME_MAX + 1];
+ __u64 devid;
+};
+
#define BTRFS_DEVICE_PATH_NAME_MAX 1024
#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
@@ -683,6 +689,8 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code)
struct btrfs_ioctl_feature_flags[2])
#define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
struct btrfs_ioctl_feature_flags[3])
+#define BTRFS_IOC_RM_DEV_V2 _IOW(BTRFS_IOCTL_MAGIC, 58, \
+ struct btrfs_ioctl_vol_args_v3)
#ifdef __cplusplus
}
#endif
--
2.4.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-08-14 10:36 ` [PATCH 2/2] btrfs-progs: device delete to accept devid Anand Jain
@ 2015-08-17 7:00 ` Goffredo Baroncelli
2015-08-17 11:17 ` Anand Jain
2015-08-20 11:29 ` Goffredo Baroncelli
1 sibling, 1 reply; 10+ messages in thread
From: Goffredo Baroncelli @ 2015-08-17 7:00 UTC (permalink / raw)
To: Anand Jain, linux-btrfs; +Cc: clm, dsterba
On 2015-08-14 12:36, Anand Jain wrote:
> This patch introduces new option <devid> for the command
>
> btrfs device delete <device_path|devid>[..] <mnt>
>
> In a user reported issue on a 3-disk-RAID1, one disk failed with its
> SB unreadable. Now with this patch user will have a choice to delete
> the device using devid.
>
> The other method we could do, is to match the input device_path
> to the available device_paths with in the kernel. But that won't
> work in all the cases, like what if user provided mapper path
> when the path within the kernel is a non-mapper path.
>
> This patch depends on the below kernel patch for the new feature to work,
> however it will fail-back to the old interface for the kernel without the
> patch
>
> Btrfs: device delete by devid
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
> Documentation/btrfs-device.asciidoc | 2 +-
> cmds-device.c | 45 ++++++++++++++++++++++++++++---------
> ioctl.h | 8 +++++++
> 3 files changed, 44 insertions(+), 11 deletions(-)
>
> diff --git a/Documentation/btrfs-device.asciidoc b/Documentation/btrfs-device.asciidoc
> index 2827598..61ede6e 100644
> --- a/Documentation/btrfs-device.asciidoc
> +++ b/Documentation/btrfs-device.asciidoc
> @@ -74,7 +74,7 @@ do not perform discard by default
> -f|--force::::
> force overwrite of existing filesystem on the given disk(s)
>
> -*remove* <dev> [<dev>...] <path>::
> +*remove* <dev>|<devid> [<dev>|<devid>...] <path>::
> Remove device(s) from a filesystem identified by <path>.
>
> *delete* <dev> [<dev>...] <path>::
also here is missing <devid> (below you added)
> diff --git a/cmds-device.c b/cmds-device.c
> index 0e60500..eb4358d 100644
> --- a/cmds-device.c
> +++ b/cmds-device.c
> @@ -164,16 +164,34 @@ static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
> struct btrfs_ioctl_vol_args arg;
> int res;
>
> - if (!is_block_device(argv[i])) {
> + struct btrfs_ioctl_vol_args_v3 argv3 = {0};
> + int its_num = false;
> +
> + if (is_numerical(argv[i])) {
> + argv3.devid = arg_strtou64(argv[i]);
> + its_num = true;
> + } else if (is_block_device(argv[i])) {
> + strncpy_null(argv3.name, argv[i]);
> + } else {
> fprintf(stderr,
> - "ERROR: %s is not a block device\n", argv[i]);
> + "ERROR: %s is not a block device or devid\n", argv[i]);
> ret++;
> continue;
> }
> - memset(&arg, 0, sizeof(arg));
> - strncpy_null(arg.name, argv[i]);
> - res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
> + res = ioctl(fdmnt, BTRFS_IOC_RM_DEV_V2, &argv3);
> e = errno;
> + if (res && e == ENOTTY) {
> + if (its_num) {
> + fprintf(stderr,
> + "Error: Kernel does not support delete by devid\n");
> + ret = 1;
> + continue;
> + }
> + memset(&arg, 0, sizeof(arg));
> + strncpy_null(arg.name, argv[i]);
> + res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
> + e = errno;
> + }
> if (res) {
> const char *msg;
>
> @@ -181,9 +199,16 @@ static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
> msg = btrfs_err_str(res);
> else
> msg = strerror(e);
> - fprintf(stderr,
> - "ERROR: error removing the device '%s' - %s\n",
> - argv[i], msg);
> +
> + if (its_num)
> + fprintf(stderr,
> + "ERROR: error removing the devid '%llu' - %s\n",
> + argv3.devid, msg);
> + else
> + fprintf(stderr,
> + "ERROR: error removing the device '%s' - %s\n",
> + argv[i], msg);
> +
> ret++;
> }
> }
> @@ -193,7 +218,7 @@ static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
> }
>
> static const char * const cmd_rm_dev_usage[] = {
> - "btrfs device remove <device> [<device>...] <path>",
> + "btrfs device remove <device>|<devid> [<device>|<devid>...] <path>",
> "Remove a device from a filesystem",
> NULL
> };
> @@ -204,7 +229,7 @@ static int cmd_rm_dev(int argc, char **argv)
> }
>
> static const char * const cmd_del_dev_usage[] = {
> - "btrfs device delete <device> [<device>...] <path>",
> + "btrfs device delete <device>|<devid> [<device>|<devid>...] <path>",
> "Remove a device from a filesystem",
> NULL
> };
> diff --git a/ioctl.h b/ioctl.h
> index dff015a..6870931 100644
> --- a/ioctl.h
> +++ b/ioctl.h
> @@ -40,6 +40,12 @@ struct btrfs_ioctl_vol_args {
> char name[BTRFS_PATH_NAME_MAX + 1];
> };
>
> +struct btrfs_ioctl_vol_args_v3 {
> + __s64 fd;
> + char name[BTRFS_PATH_NAME_MAX + 1];
> + __u64 devid;
> +};
> +
> #define BTRFS_DEVICE_PATH_NAME_MAX 1024
>
> #define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
> @@ -683,6 +689,8 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code)
> struct btrfs_ioctl_feature_flags[2])
> #define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
> struct btrfs_ioctl_feature_flags[3])
> +#define BTRFS_IOC_RM_DEV_V2 _IOW(BTRFS_IOCTL_MAGIC, 58, \
> + struct btrfs_ioctl_vol_args_v3)
> #ifdef __cplusplus
> }
> #endif
>
--
gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-08-17 7:00 ` Goffredo Baroncelli
@ 2015-08-17 11:17 ` Anand Jain
0 siblings, 0 replies; 10+ messages in thread
From: Anand Jain @ 2015-08-17 11:17 UTC (permalink / raw)
To: kreijack, linux-btrfs; +Cc: clm, dsterba
>>
>> -*remove* <dev> [<dev>...] <path>::
>> +*remove* <dev>|<devid> [<dev>|<devid>...] <path>::
>> Remove device(s) from a filesystem identified by <path>.
>>
>> *delete* <dev> [<dev>...] <path>::
> also here is missing <devid> (below you added)
Thank you. Got this fixed.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-08-14 10:36 ` [PATCH 2/2] btrfs-progs: device delete to accept devid Anand Jain
2015-08-17 7:00 ` Goffredo Baroncelli
@ 2015-08-20 11:29 ` Goffredo Baroncelli
2015-08-28 14:17 ` Anand Jain
1 sibling, 1 reply; 10+ messages in thread
From: Goffredo Baroncelli @ 2015-08-20 11:29 UTC (permalink / raw)
To: Anand Jain, linux-btrfs; +Cc: clm, dsterba
Hi Anand
On 2015-08-14 12:36, Anand Jain wrote:
> This patch introduces new option <devid> for the command
>
[...]
> +
> + if (is_numerical(argv[i])) {
> + argv3.devid = arg_strtou64(argv[i]);
> + its_num = true;
> + } else if (is_block_device(argv[i])) {
please be aware that is_block_device(), returns
- 1 if the file is a block device,
- < 0 in case of an error (eg: file not found)
- 0 otherwise
so I suggest to change the check in
+ } else if (is_block_device(argv[i]) == 1) {
[...]
--
gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-08-20 11:29 ` Goffredo Baroncelli
@ 2015-08-28 14:17 ` Anand Jain
2015-08-28 16:56 ` Goffredo Baroncelli
2015-08-28 16:57 ` Goffredo Baroncelli
0 siblings, 2 replies; 10+ messages in thread
From: Anand Jain @ 2015-08-28 14:17 UTC (permalink / raw)
To: kreijack, linux-btrfs; +Cc: clm, dsterba
Hi Goffredo,
sorry to have missed this.
On 08/20/2015 07:29 PM, Goffredo Baroncelli wrote:
> Hi Anand
> On 2015-08-14 12:36, Anand Jain wrote:
>> This patch introduces new option <devid> for the command
>>
> [...]
>
>> +
>> + if (is_numerical(argv[i])) {
>> + argv3.devid = arg_strtou64(argv[i]);
>> + its_num = true;
>> + } else if (is_block_device(argv[i])) {
>
>
> please be aware that is_block_device(), returns
> - 1 if the file is a block device,
> - < 0 in case of an error (eg: file not found)
> - 0 otherwise
>
> so I suggest to change the check in
>
> + } else if (is_block_device(argv[i]) == 1) {
>
> [...]
>
oh yes. I didn't notice that.
In fact everywhere we didn't check the return properly.
I wrote a new patch to fix this.
Thanks, Anand
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-08-28 14:17 ` Anand Jain
@ 2015-08-28 16:56 ` Goffredo Baroncelli
2015-08-28 16:57 ` Goffredo Baroncelli
1 sibling, 0 replies; 10+ messages in thread
From: Goffredo Baroncelli @ 2015-08-28 16:56 UTC (permalink / raw)
To: Anand Jain, linux-btrfs; +Cc: clm, dsterba
On 2015-08-28 16:17, Anand Jain wrote:
>
> Hi Goffredo,
>
> sorry to have missed this.
>
[...]
>
> In fact everywhere we didn't check the return properly.
> I wrote a new patch to fix this.
>
> Thanks, Anand
Many thanks for your work
BR
Goffredo
--
gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] btrfs-progs: device delete to accept devid
2015-08-28 14:17 ` Anand Jain
2015-08-28 16:56 ` Goffredo Baroncelli
@ 2015-08-28 16:57 ` Goffredo Baroncelli
1 sibling, 0 replies; 10+ messages in thread
From: Goffredo Baroncelli @ 2015-08-28 16:57 UTC (permalink / raw)
To: linux-btrfs; +Cc: clm, dsterba
On 2015-08-28 16:17, Anand Jain wrote:
>
> Hi Goffredo,
>
> sorry to have missed this.
>
[...]
>
> In fact everywhere we didn't check the return properly.
> I wrote a new patch to fix this.
>
> Thanks, Anand
Many thanks for your work
BR
Goffredo
--
gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-08-28 16:57 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-14 10:36 [PATCH 0/2] Btrfs-progs: device delete to accept devid Anand Jain
2015-08-14 10:36 ` [PATCH 1/2] btrfs-progs: move is_numerical to utils-lib.h and make it non static Anand Jain
2015-08-14 10:36 ` [PATCH 2/2] btrfs-progs: device delete to accept devid Anand Jain
2015-08-17 7:00 ` Goffredo Baroncelli
2015-08-17 11:17 ` Anand Jain
2015-08-20 11:29 ` Goffredo Baroncelli
2015-08-28 14:17 ` Anand Jain
2015-08-28 16:56 ` Goffredo Baroncelli
2015-08-28 16:57 ` Goffredo Baroncelli
-- strict thread matches above, loose matches on Subject: below --
2015-04-20 10:29 [PATCH] device delete by devid Anand Jain
2015-04-20 10:29 ` [PATCH 2/2] btrfs-progs: device delete to accept devid Anand Jain
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.