]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
handle directories correctly
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 1 Dec 2010 23:11:14 +0000 (00:11 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 1 Dec 2010 23:11:14 +0000 (00:11 +0100)
grub-core/fs/btrfs.c

index 6c6a6f9f80859b0ba69ef819d0c89df5fcf8fea5..1afd8fbb4fa2d3c5260d4cdcb7eb84fa3901b722 100644 (file)
@@ -726,9 +726,11 @@ find_path (struct grub_btrfs_data *data,
            break;
          }
        case GRUB_BTRFS_ITEM_TYPE_INODE_ITEM:
-         if (*slash)
+         if (*slash && *type == GRUB_BTRFS_DIR_ITEM_TYPE_REGULAR)
            return grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
          *key = cdirel->key;
+         if (*type == GRUB_BTRFS_DIR_ITEM_TYPE_DIRECTORY)
+           key->type = GRUB_BTRFS_ITEM_TYPE_DIR_ITEM;      
          break;
        default:
          return grub_error (GRUB_ERR_BAD_FS, "unrecognised object type 0x%x",