diff mbox

btrfs-progs: subvol show could take more than one subvol

Message ID 1366364309-28525-1-git-send-email-anand.jain@oracle.com (mailing list archive)
State Under Review, archived
Headers show

Commit Message

Anand Jain April 19, 2013, 9:38 a.m. UTC
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 cmds-subvolume.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Stefan Behrens April 19, 2013, 10 a.m. UTC | #1
On Fri, 19 Apr 2013 17:38:29 +0800, Anand Jain wrote:
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
>  cmds-subvolume.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/cmds-subvolume.c b/cmds-subvolume.c
> index 74e2130..e3b8032 100644
> --- a/cmds-subvolume.c
> +++ b/cmds-subvolume.c
> @@ -800,16 +800,18 @@ static int cmd_subvol_show(int argc, char **argv)
>  	struct btrfs_list_filter_set *filter_set;
>  	char tstr[256];
>  	char uuidparse[37];
> -	char *fullpath = NULL, *svpath = NULL, *mnt = NULL;
> +	char *fullpath, *svpath = NULL, *mnt;
>  	char raw_prefix[] = "\t\t\t\t";
>  	u64 sv_id, mntid;
>  	int fd = -1, mntfd = -1;
>  	int ret = -1;
>  
> -	if (check_argc_exact(argc, 2))
> +	if (check_argc_min(argc, 2))
>  		usage(cmd_subvol_show_usage);
> -
> -	fullpath = realpath(argv[1], 0);
> +again:
> +	mnt = NULL;
> +	fullpath = NULL;

The "fullpath = NULL" line above is not needed because of the following
line.

> +	fullpath = realpath(argv[optind++], 0);
>  	if (!fullpath) {
>  		fprintf(stderr, "ERROR: finding real path for '%s', %s\n",
>  			argv[1], strerror(errno));

                        argv[optind - 1], strerror(errno));


> @@ -939,6 +941,8 @@ out:
>  	if (fullpath)
>  		free(fullpath);
>  
> +	if (optind < argc)
> +		goto again;
>  	return ret;
>  }
>  
> 

--
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
diff mbox

Patch

diff --git a/cmds-subvolume.c b/cmds-subvolume.c
index 74e2130..e3b8032 100644
--- a/cmds-subvolume.c
+++ b/cmds-subvolume.c
@@ -800,16 +800,18 @@  static int cmd_subvol_show(int argc, char **argv)
 	struct btrfs_list_filter_set *filter_set;
 	char tstr[256];
 	char uuidparse[37];
-	char *fullpath = NULL, *svpath = NULL, *mnt = NULL;
+	char *fullpath, *svpath = NULL, *mnt;
 	char raw_prefix[] = "\t\t\t\t";
 	u64 sv_id, mntid;
 	int fd = -1, mntfd = -1;
 	int ret = -1;
 
-	if (check_argc_exact(argc, 2))
+	if (check_argc_min(argc, 2))
 		usage(cmd_subvol_show_usage);
-
-	fullpath = realpath(argv[1], 0);
+again:
+	mnt = NULL;
+	fullpath = NULL;
+	fullpath = realpath(argv[optind++], 0);
 	if (!fullpath) {
 		fprintf(stderr, "ERROR: finding real path for '%s', %s\n",
 			argv[1], strerror(errno));
@@ -939,6 +941,8 @@  out:
 	if (fullpath)
 		free(fullpath);
 
+	if (optind < argc)
+		goto again;
 	return ret;
 }