]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
store errno immediately after ioctl 936/head
authorOleg Freedholm <overlayfs@gmail.com>
Sun, 3 Apr 2016 15:15:58 +0000 (01:15 +1000)
committerOleg Freedholm <overlayfs@gmail.com>
Sun, 3 Apr 2016 15:15:58 +0000 (01:15 +1000)
Signed-off-by: Oleg Freedholm <overlayfs@gmail.com>
src/lxc/bdev/lxcbtrfs.c

index 6b06cfd35fc0a57612a63f93dd456941d219b06f..5ee6dd3401db8eb1b31fd1d28f55c4c9e4c6ad50 100644 (file)
@@ -568,7 +568,7 @@ static int btrfs_recursive_destroy(const char *path)
        struct btrfs_ioctl_search_header sh;
        struct btrfs_root_ref *ref;
        struct my_btrfs_tree *tree;
-       int ret, i;
+       int ret, e, i;
        unsigned long off = 0;
        int name_len;
        char *name;
@@ -582,8 +582,9 @@ static int btrfs_recursive_destroy(const char *path)
        }
 
        if (btrfs_list_get_path_rootid(fd, &root_id)) {
+               e = errno;
                close(fd);
-               if (errno == EPERM || errno == EACCES) {
+               if (e == EPERM || e == EACCES) {
                        WARN("Will simply try removing");
                        goto ignore_search;
                }
@@ -614,10 +615,11 @@ static int btrfs_recursive_destroy(const char *path)
 
        while(1) {
                ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args);
+               e = errno;
                if (ret < 0) {
                        close(fd);
                        free_btrfs_tree(tree);
-                       if (errno == EPERM || errno == EACCES) {
+                       if (e == EPERM || e == EACCES) {
                                WARN("Warn: can't perform the search under %s. Will simply try removing", path);
                                goto ignore_search;
                        }