aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0005-Improve-error-handling-in-the-btrfs-command.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0005-Improve-error-handling-in-the-btrfs-command.patch')
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0005-Improve-error-handling-in-the-btrfs-command.patch510
1 files changed, 0 insertions, 510 deletions
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0005-Improve-error-handling-in-the-btrfs-command.patch b/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0005-Improve-error-handling-in-the-btrfs-command.patch
deleted file mode 100644
index e7e3fae332..0000000000
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0005-Improve-error-handling-in-the-btrfs-command.patch
+++ /dev/null
@@ -1,510 +0,0 @@
-Upstream-Status: Inappropriate [Backport]
-From b3007332100e01ca84c161b6c75f0a414ab4611b Mon Sep 17 00:00:00 2001
-From: Goffredo Baroncelli <kreijack@libero.it>
-Date: Mon, 20 Dec 2010 20:06:19 +0000
-Subject: [PATCH 05/15] Improve error handling in the btrfs command
-
-Hi Chris,
-
-below is enclosed a trivial patch, which has the aim to improve the error
-reporting of the "btrfs" command.
-
-You can pull from
-
- http://cassiopea.homelinux.net/git/btrfs-progs-unstable.git
-
-branch
-
- strerror
-
-I changed every printf("some-error") to something like:
-
- e = errno;
- fprintf(stderr, "ERROR: .... - %s", strerror(e));
-
-so:
-
-1) all the error are reported to standard error
-2) At the end of the message is printed the error as returned by the system.
-
-The change is quite simple, I replaced every printf("some-error") to the line
-above. I don't touched anything other.
-I also integrated a missing "printf" on the basis of the Ben patch.
-
-This patch leads the btrfs command to be more "user friendly" :-)
-
-Regards
-G.Baroncelli
-
- btrfs-list.c | 40 ++++++++++++++++++++++--------
- btrfs_cmds.c | 77 ++++++++++++++++++++++++++++++++++++++++-----------------
- utils.c | 6 ++++
- 3 files changed, 89 insertions(+), 34 deletions(-)
-
-Signed-off-by: Chris Mason <chris.mason@oracle.com>
----
- btrfs-list.c | 40 ++++++++++++++++++++++--------
- btrfs_cmds.c | 77 ++++++++++++++++++++++++++++++++++++++++-----------------
- utils.c | 6 ++++
- 3 files changed, 89 insertions(+), 34 deletions(-)
-
-diff --git a/btrfs-list.c b/btrfs-list.c
-index 93766a8..abcc2f4 100644
---- a/btrfs-list.c
-+++ b/btrfs-list.c
-@@ -265,7 +265,7 @@ static int resolve_root(struct root_lookup *rl, struct root_info *ri)
- static int lookup_ino_path(int fd, struct root_info *ri)
- {
- struct btrfs_ioctl_ino_lookup_args args;
-- int ret;
-+ int ret, e;
-
- if (ri->path)
- return 0;
-@@ -275,9 +275,11 @@ static int lookup_ino_path(int fd, struct root_info *ri)
- args.objectid = ri->dir_id;
-
- ret = ioctl(fd, BTRFS_IOC_INO_LOOKUP, &args);
-+ e = errno;
- if (ret) {
-- fprintf(stderr, "ERROR: Failed to lookup path for root %llu\n",
-- (unsigned long long)ri->ref_tree);
-+ fprintf(stderr, "ERROR: Failed to lookup path for root %llu - %s\n",
-+ (unsigned long long)ri->ref_tree,
-+ strerror(e));
- return ret;
- }
-
-@@ -320,15 +322,18 @@ static u64 find_root_gen(int fd)
- unsigned long off = 0;
- u64 max_found = 0;
- int i;
-+ int e;
-
- memset(&ino_args, 0, sizeof(ino_args));
- ino_args.objectid = BTRFS_FIRST_FREE_OBJECTID;
-
- /* this ioctl fills in ino_args->treeid */
- ret = ioctl(fd, BTRFS_IOC_INO_LOOKUP, &ino_args);
-+ e = errno;
- if (ret) {
-- fprintf(stderr, "ERROR: Failed to lookup path for dirid %llu\n",
-- (unsigned long long)BTRFS_FIRST_FREE_OBJECTID);
-+ fprintf(stderr, "ERROR: Failed to lookup path for dirid %llu - %s\n",
-+ (unsigned long long)BTRFS_FIRST_FREE_OBJECTID,
-+ strerror(e));
- return 0;
- }
-
-@@ -351,8 +356,10 @@ static u64 find_root_gen(int fd)
-
- while (1) {
- ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args);
-+ e = errno;
- if (ret < 0) {
-- fprintf(stderr, "ERROR: can't perform the search\n");
-+ fprintf(stderr, "ERROR: can't perform the search - %s\n",
-+ strerror(e));
- return 0;
- }
- /* the ioctl returns the number of item it found in nr_items */
-@@ -407,14 +414,16 @@ static char *__ino_resolve(int fd, u64 dirid)
- struct btrfs_ioctl_ino_lookup_args args;
- int ret;
- char *full;
-+ int e;
-
- memset(&args, 0, sizeof(args));
- args.objectid = dirid;
-
- ret = ioctl(fd, BTRFS_IOC_INO_LOOKUP, &args);
-+ e = errno;
- if (ret) {
-- fprintf(stderr, "ERROR: Failed to lookup path for dirid %llu\n",
-- (unsigned long long)dirid);
-+ fprintf(stderr, "ERROR: Failed to lookup path for dirid %llu - %s\n",
-+ (unsigned long long)dirid, strerror(e) );
- return ERR_PTR(ret);
- }
-
-@@ -472,6 +481,7 @@ static char *ino_resolve(int fd, u64 ino, u64 *cache_dirid, char **cache_name)
- struct btrfs_ioctl_search_header *sh;
- unsigned long off = 0;
- int namelen;
-+ int e;
-
- memset(&args, 0, sizeof(args));
-
-@@ -490,8 +500,10 @@ static char *ino_resolve(int fd, u64 ino, u64 *cache_dirid, char **cache_name)
- sk->nr_items = 1;
-
- ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args);
-+ e = errno;
- if (ret < 0) {
-- fprintf(stderr, "ERROR: can't perform the search\n");
-+ fprintf(stderr, "ERROR: can't perform the search - %s\n",
-+ strerror(e));
- return NULL;
- }
- /* the ioctl returns the number of item it found in nr_items */
-@@ -550,6 +562,7 @@ int list_subvols(int fd)
- char *name;
- u64 dir_id;
- int i;
-+ int e;
-
- root_lookup_init(&root_lookup);
-
-@@ -578,8 +591,10 @@ int list_subvols(int fd)
-
- while(1) {
- ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args);
-+ e = errno;
- if (ret < 0) {
-- fprintf(stderr, "ERROR: can't perform the search\n");
-+ fprintf(stderr, "ERROR: can't perform the search - %s\n",
-+ strerror(e));
- return ret;
- }
- /* the ioctl returns the number of item it found in nr_items */
-@@ -747,6 +762,7 @@ int find_updated_files(int fd, u64 root_id, u64 oldest_gen)
- u64 found_gen;
- u64 max_found = 0;
- int i;
-+ int e;
- u64 cache_dirid = 0;
- u64 cache_ino = 0;
- char *cache_dir_name = NULL;
-@@ -773,8 +789,10 @@ int find_updated_files(int fd, u64 root_id, u64 oldest_gen)
- max_found = find_root_gen(fd);
- while(1) {
- ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args);
-+ e = errno;
- if (ret < 0) {
-- fprintf(stderr, "ERROR: can't perform the search\n");
-+ fprintf(stderr, "ERROR: can't perform the search- %s\n",
-+ strerror(e));
- return ret;
- }
- /* the ioctl returns the number of item it found in nr_items */
-diff --git a/btrfs_cmds.c b/btrfs_cmds.c
-index fffb423..775bfe1 100644
---- a/btrfs_cmds.c
-+++ b/btrfs_cmds.c
-@@ -156,6 +156,7 @@ int do_defrag(int ac, char **av)
- int verbose = 0;
- int fancy_ioctl = 0;
- struct btrfs_ioctl_defrag_range_args range;
-+ int e=0;
-
- optind = 1;
- while(1) {
-@@ -219,19 +220,21 @@ int do_defrag(int ac, char **av)
- }
- if (!fancy_ioctl) {
- ret = ioctl(fd, BTRFS_IOC_DEFRAG, NULL);
-+ e=errno;
- } else {
- ret = ioctl(fd, BTRFS_IOC_DEFRAG_RANGE, &range);
- if (ret && errno == ENOTTY) {
-- fprintf(stderr, "defrag range ioctl not "
-+ fprintf(stderr, "ERROR: defrag range ioctl not "
- "supported in this kernel, please try "
- "without any options.\n");
- errors++;
-+ close(fd);
- break;
- }
- }
- if (ret) {
-- fprintf(stderr, "ioctl failed on %s ret %d errno %d\n",
-- av[i], ret, errno);
-+ fprintf(stderr, "ERROR: defrag failed on %s - %s\n",
-+ av[i], strerror(e));
- errors++;
- }
- close(fd);
-@@ -310,7 +313,7 @@ int do_subvol_list(int argc, char **argv)
- int do_clone(int argc, char **argv)
- {
- char *subvol, *dst;
-- int res, fd, fddst, len;
-+ int res, fd, fddst, len, e;
- char *newname;
- char *dstdir;
-
-@@ -377,12 +380,14 @@ int do_clone(int argc, char **argv)
- args.fd = fd;
- strncpy(args.name, newname, BTRFS_PATH_NAME_MAX);
- res = ioctl(fddst, BTRFS_IOC_SNAP_CREATE, &args);
-+ e = errno;
-
- close(fd);
- close(fddst);
-
- if(res < 0 ){
-- fprintf( stderr, "ERROR: cannot snapshot '%s'\n",subvol);
-+ fprintf( stderr, "ERROR: cannot snapshot '%s' - %s\n",
-+ subvol, strerror(e));
- return 11;
- }
-
-@@ -392,7 +397,7 @@ int do_clone(int argc, char **argv)
-
- int do_delete_subvolume(int argc, char **argv)
- {
-- int res, fd, len;
-+ int res, fd, len, e;
- struct btrfs_ioctl_vol_args args;
- char *dname, *vname, *cpath;
- char *path = argv[1];
-@@ -438,11 +443,13 @@ int do_delete_subvolume(int argc, char **argv)
- printf("Delete subvolume '%s/%s'\n", dname, vname);
- strncpy(args.name, vname, BTRFS_PATH_NAME_MAX);
- res = ioctl(fd, BTRFS_IOC_SNAP_DESTROY, &args);
-+ e = errno;
-
- close(fd);
-
- if(res < 0 ){
-- fprintf( stderr, "ERROR: cannot delete '%s/%s'\n",dname, vname);
-+ fprintf( stderr, "ERROR: cannot delete '%s/%s' - %s\n",
-+ dname, vname, strerror(e));
- return 11;
- }
-
-@@ -452,7 +459,7 @@ int do_delete_subvolume(int argc, char **argv)
-
- int do_create_subvol(int argc, char **argv)
- {
-- int res, fddst, len;
-+ int res, fddst, len, e;
- char *newname;
- char *dstdir;
- struct btrfs_ioctl_vol_args args;
-@@ -492,11 +499,13 @@ int do_create_subvol(int argc, char **argv)
- printf("Create subvolume '%s/%s'\n", dstdir, newname);
- strncpy(args.name, newname, BTRFS_PATH_NAME_MAX);
- res = ioctl(fddst, BTRFS_IOC_SUBVOL_CREATE, &args);
-+ e = errno;
-
- close(fddst);
-
- if(res < 0 ){
-- fprintf( stderr, "ERROR: cannot create subvolume\n");
-+ fprintf( stderr, "ERROR: cannot create subvolume - %s\n",
-+ strerror(e));
- return 11;
- }
-
-@@ -506,7 +515,7 @@ int do_create_subvol(int argc, char **argv)
-
- int do_fssync(int argc, char **argv)
- {
-- int fd, res;
-+ int fd, res, e;
- char *path = argv[1];
-
- fd = open_file_or_dir(path);
-@@ -517,9 +526,11 @@ int do_fssync(int argc, char **argv)
-
- printf("FSSync '%s'\n", path);
- res = ioctl(fd, BTRFS_IOC_SYNC);
-+ e = errno;
- close(fd);
- if( res < 0 ){
-- fprintf(stderr, "ERROR: unable to fs-syncing '%s'\n", path);
-+ fprintf(stderr, "ERROR: unable to fs-syncing '%s' - %s\n",
-+ path, strerror(e));
- return 16;
- }
-
-@@ -528,7 +539,7 @@ int do_fssync(int argc, char **argv)
-
- int do_scan(int argc, char **argv)
- {
-- int i, fd;
-+ int i, fd, e;
- if(argc<=1){
- int ret;
-
-@@ -560,10 +571,12 @@ int do_scan(int argc, char **argv)
- * a btrfs filesystem from an I/O error !!!
- */
- ret = ioctl(fd, BTRFS_IOC_SCAN_DEV, &args);
-+ e = errno;
-
- if( ret < 0 ){
- close(fd);
-- fprintf(stderr, "ERROR: unable to scan the device '%s'\n", argv[i]);
-+ fprintf(stderr, "ERROR: unable to scan the device '%s' - %s\n",
-+ argv[i], strerror(e));
- return 11;
- }
- }
-@@ -577,7 +590,7 @@ int do_resize(int argc, char **argv)
- {
-
- struct btrfs_ioctl_vol_args args;
-- int fd, res, len;
-+ int fd, res, len, e;
- char *amount=argv[1], *path=argv[2];
-
- fd = open_file_or_dir(path);
-@@ -595,9 +608,11 @@ int do_resize(int argc, char **argv)
- printf("Resize '%s' of '%s'\n", path, amount);
- strncpy(args.name, amount, BTRFS_PATH_NAME_MAX);
- res = ioctl(fd, BTRFS_IOC_RESIZE, &args);
-+ e = errno;
- close(fd);
- if( res < 0 ){
-- fprintf(stderr, "ERROR: unable to resize '%s'\n", path);
-+ fprintf(stderr, "ERROR: unable to resize '%s' - %s\n",
-+ path, strerror(e));
- return 30;
- }
- return 0;
-@@ -691,7 +706,7 @@ int do_add_volume(int nargs, char **args)
- {
-
- char *mntpnt = args[nargs-1];
-- int i, fdmnt, ret=0;
-+ int i, fdmnt, ret=0, e;
-
-
- fdmnt = open_file_or_dir(mntpnt);
-@@ -738,8 +753,10 @@ int do_add_volume(int nargs, char **args)
-
- strncpy(ioctl_args.name, args[i], BTRFS_PATH_NAME_MAX);
- res = ioctl(fdmnt, BTRFS_IOC_ADD_DEV, &ioctl_args);
-+ e = errno;
- if(res<0){
-- fprintf(stderr, "ERROR: error adding the device '%s'\n", args[i]);
-+ fprintf(stderr, "ERROR: error adding the device '%s' - %s\n",
-+ args[i], strerror(e));
- ret++;
- }
-
-@@ -756,7 +773,7 @@ int do_add_volume(int nargs, char **args)
- int do_balance(int argc, char **argv)
- {
-
-- int fdmnt, ret=0;
-+ int fdmnt, ret=0, e;
- struct btrfs_ioctl_vol_args args;
- char *path = argv[1];
-
-@@ -768,9 +785,11 @@ int do_balance(int argc, char **argv)
-
- memset(&args, 0, sizeof(args));
- ret = ioctl(fdmnt, BTRFS_IOC_BALANCE, &args);
-+ e = errno;
- close(fdmnt);
- if(ret<0){
-- fprintf(stderr, "ERROR: balancing '%s'\n", path);
-+ fprintf(stderr, "ERROR: error during balancing '%s' - %s\n",
-+ path, strerror(e));
-
- return 19;
- }
-@@ -780,7 +799,7 @@ int do_remove_volume(int nargs, char **args)
- {
-
- char *mntpnt = args[nargs-1];
-- int i, fdmnt, ret=0;
-+ int i, fdmnt, ret=0, e;
-
- fdmnt = open_file_or_dir(mntpnt);
- if (fdmnt < 0) {
-@@ -794,8 +813,10 @@ int do_remove_volume(int nargs, char **args)
-
- strncpy(arg.name, args[i], BTRFS_PATH_NAME_MAX);
- res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
-+ e = errno;
- if(res<0){
-- fprintf(stderr, "ERROR: error removing the device '%s'\n", args[i]);
-+ fprintf(stderr, "ERROR: error removing the device '%s' - %s\n",
-+ args[i], strerror(e));
- ret++;
- }
- }
-@@ -809,7 +830,7 @@ int do_remove_volume(int nargs, char **args)
-
- int do_set_default_subvol(int nargs, char **argv)
- {
-- int ret=0, fd;
-+ int ret=0, fd, e;
- u64 objectid;
- char *path = argv[2];
- char *subvolid = argv[1];
-@@ -826,9 +847,11 @@ int do_set_default_subvol(int nargs, char **argv)
- return 30;
- }
- ret = ioctl(fd, BTRFS_IOC_DEFAULT_SUBVOL, &objectid);
-+ e = errno;
- close(fd);
- if( ret < 0 ){
-- fprintf(stderr, "ERROR: unable to set a new default subvolume\n");
-+ fprintf(stderr, "ERROR: unable to set a new default subvolume - %s\n",
-+ strerror(e));
- return 30;
- }
- return 0;
-@@ -840,6 +863,7 @@ int do_df_filesystem(int nargs, char **argv)
- u64 count = 0, i;
- int ret;
- int fd;
-+ int e;
- char *path = argv[1];
-
- fd = open_file_or_dir(path);
-@@ -856,7 +880,10 @@ int do_df_filesystem(int nargs, char **argv)
- sargs->total_spaces = 0;
-
- ret = ioctl(fd, BTRFS_IOC_SPACE_INFO, sargs);
-+ e = errno;
- if (ret) {
-+ fprintf(stderr, "ERROR: couldn't get space info on '%s' - %s\n",
-+ path, strerror(e));
- free(sargs);
- return ret;
- }
-@@ -874,7 +901,11 @@ int do_df_filesystem(int nargs, char **argv)
- sargs->total_spaces = 0;
-
- ret = ioctl(fd, BTRFS_IOC_SPACE_INFO, sargs);
-+ e = errno;
- if (ret) {
-+ fprintf(stderr, "ERROR: couldn't get space info on '%s' - %s\n",
-+ path, strerror(e));
-+ close(fd);
- free(sargs);
- return ret;
- }
-diff --git a/utils.c b/utils.c
-index d8c3dcc..2a15d86 100644
---- a/utils.c
-+++ b/utils.c
-@@ -821,6 +821,7 @@ void btrfs_register_one_device(char *fname)
- struct btrfs_ioctl_vol_args args;
- int fd;
- int ret;
-+ int e;
-
- fd = open("/dev/btrfs-control", O_RDONLY);
- if (fd < 0) {
-@@ -830,6 +831,11 @@ void btrfs_register_one_device(char *fname)
- }
- strncpy(args.name, fname, BTRFS_PATH_NAME_MAX);
- ret = ioctl(fd, BTRFS_IOC_SCAN_DEV, &args);
-+ e = errno;
-+ if(ret<0){
-+ fprintf(stderr, "ERROR: unable to scan the device '%s' - %s\n",
-+ fname, strerror(e));
-+ }
- close(fd);
- }
-
---
-1.7.2.3
-