bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #60739] make it possible to use raw disk as grubenv


From: Volodymyr Prodan
Subject: [bug #60739] make it possible to use raw disk as grubenv
Date: Sun, 6 Jun 2021 13:37:28 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0

URL:
  <https://savannah.gnu.org/bugs/?60739>

                 Summary: make it possible to use raw disk as grubenv
                 Project: GNU GRUB
            Submitted by: vovcat
            Submitted on: Sun 06 Jun 2021 05:37:26 PM UTC
                Category: Filesystem
                Severity: Major
                Priority: 5 - Normal
              Item Group: Feature Request
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
                 Release: 
                 Release: Git master
         Discussion Lock: Any
         Reproducibility: Every Time
         Planned Release: None

    _______________________________________________________

Details:

commit 80ffbb3265889af739659d365dd87f8022387104 (HEAD -> grub2-master)
Author: Volodymyr Prodan <vovcat@gmail.com>
Date:   Fri Jun 4 21:33:28 2021 +0300

    Make grub_fs_blocklist_read() to call file->read_hook().
    
    This makes it possible to use raw disk as grubenv, save_env -f
(hd0)1024+2
    for example.

diff --git grub-core/kern/fs.c grub-core/kern/fs.c
index f90be6566..cf4289081 100644
--- grub-core/kern/fs.c
+++ grub-core/kern/fs.c
@@ -224,8 +224,11 @@ grub_fs_blocklist_read (grub_file_t file, char *buf,
grub_size_t len)
               >> GRUB_DISK_SECTOR_BITS) > p->length - sector)
            size = ((p->length - sector) << GRUB_DISK_SECTOR_BITS) - offset;
 
-         if (grub_disk_read (file->device->disk, p->offset + sector, offset,
-                             size, buf) != GRUB_ERR_NONE)
+         file->device->disk->read_hook = file->read_hook;
+         file->device->disk->read_hook_data = file->read_hook_data;
+         grub_err_t err = grub_disk_read (file->device->disk, p->offset +
sector, offset, size, buf);
+         file->device->disk->read_hook = 0;
+         if (err != GRUB_ERR_NONE)
            return -1;
 
          ret += size;




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Sun 06 Jun 2021 05:37:26 PM UTC  Name: raw-disk-as-grubenv.patch  Size:
1KiB   By: vovcat

<http://savannah.gnu.org/bugs/download.php?file_id=51523>

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?60739>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]