diff mbox

Btrfs-progs: end user may like full path for the subvol list display

Message ID 1348836993-19573-1-git-send-email-Anand.Jain@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Anand Jain Sept. 28, 2012, 12:56 p.m. UTC
From: Anand Jain <anand.jain@oracle.com>

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 btrfs-list.c     |   10 +++++-----
 cmds-subvolume.c |   12 +++++++++---
 2 files changed, 14 insertions(+), 8 deletions(-)

Comments

David Sterba Sept. 30, 2012, 11:42 p.m. UTC | #1
On Fri, Sep 28, 2012 at 08:56:33PM +0800, Anand jain wrote:
> From: Anand Jain <anand.jain@oracle.com>

> [PATCH] Btrfs-progs: end user may like full path for the subvol list
> display

Sure, why not, but please make it optional, eg. with --full-subvol-path
or similar ugly command line option :)

There are several patches touching the output format of the subvolume
listing, it would be great to put them all into one branch and then
unify the options.

It may end up in a more invasive format change where the one-line would
stay as is now and another --verbose format where the rest of the
information (generation, timestamp, uuid, rw/ro, parent) will be listed
separately under the subvol name in a parseable format.


david
--
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/btrfs-list.c b/btrfs-list.c
index c53d016..9191b7c 100644
--- a/btrfs-list.c
+++ b/btrfs-list.c
@@ -719,7 +719,7 @@  static int __list_subvol_fill_paths(int fd, struct root_lookup *root_lookup)
 	return 0;
 }
 
-int list_subvols(int fd, int print_parent, int get_default)
+int list_subvols(int fd, int print_parent, int get_default, char *mntp)
 {
 	struct root_lookup root_lookup;
 	struct rb_node *n;
@@ -779,14 +779,14 @@  int list_subvols(int fd, int print_parent, int get_default)
 
 		resolve_root(&root_lookup, entry, &parent_id, &level, &path);
 		if (print_parent) {
-			printf("ID %llu parent %llu top level %llu path %s\n",
+			printf("ID %llu parent %llu top level %llu path %s/%s\n",
 				(unsigned long long)entry->root_id,
 				(unsigned long long)parent_id,
-				(unsigned long long)level, path);
+				(unsigned long long)level, mntp, path);
 		} else {
-			printf("ID %llu top level %llu path %s\n",
+			printf("ID %llu top level %llu path %s/%s\n",
 				(unsigned long long)entry->root_id,
-				(unsigned long long)level, path);
+				(unsigned long long)level, mntp, path);
 		}
 
 		free(path);
diff --git a/cmds-subvolume.c b/cmds-subvolume.c
index f4aa80f..0725d2d 100644
--- a/cmds-subvolume.c
+++ b/cmds-subvolume.c
@@ -31,7 +31,7 @@ 
 #include "commands.h"
 
 /* btrfs-list.c */
-int list_subvols(int fd, int print_parent, int get_default);
+int list_subvols(int fd, int print_parent, int get_default, char *mntp);
 int find_updated_files(int fd, u64 root_id, u64 oldest_gen);
 
 static const char * const subvolume_cmd_group_usage[] = {
@@ -274,6 +274,7 @@  static int cmd_subvol_list(int argc, char **argv)
 	int ret;
 	int print_parent = 0;
 	char *subvol;
+	char *mntp = NULL;
 
 	optind = 1;
 	while(1) {
@@ -310,7 +311,9 @@  static int cmd_subvol_list(int argc, char **argv)
 		fprintf(stderr, "ERROR: can't access '%s'\n", subvol);
 		return 12;
 	}
-	ret = list_subvols(fd, print_parent, 0);
+	find_mount_root(subvol, &mntp);
+	ret = list_subvols(fd, print_parent, 0, mntp);
+	free(mntp);
 	if (ret)
 		return 19;
 	return 0;
@@ -470,6 +473,7 @@  static int cmd_subvol_get_default(int argc, char **argv)
 	int fd;
 	int ret;
 	char *subvol;
+	char *mntp = NULL;
 
 	if (check_argc_exact(argc, 2))
 		usage(cmd_subvol_get_default_usage);
@@ -491,7 +495,9 @@  static int cmd_subvol_get_default(int argc, char **argv)
 		fprintf(stderr, "ERROR: can't access '%s'\n", subvol);
 		return 12;
 	}
-	ret = list_subvols(fd, 0, 1);
+	find_mount_root(subvol, &mntp);
+	ret = list_subvols(fd, 0, 1, mntp);
+	free(mntp);
 	if (ret)
 		return 19;
 	return 0;