All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] exfat: Save the matching directory entry when iterating
@ 2020-03-03 19:40 David Michael
  2020-03-06 12:02 ` Daniel Kiper
  0 siblings, 1 reply; 2+ messages in thread
From: David Michael @ 2020-03-03 19:40 UTC (permalink / raw)
  To: grub-devel

This provides the node's attributes outside the search function.

Signed-off-by: David Michael <fedora.dm0@gmail.com>
---

I had to copy an extra struct to support exfat mtimes, so I put it in a
separate patch for readability.

 grub-core/fs/fat.c | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c
index d544e0af1..dc493add2 100644
--- a/grub-core/fs/fat.c
+++ b/grub-core/fs/fat.c
@@ -596,6 +596,7 @@ struct grub_fat_iterate_context
 {
 #ifdef MODE_EXFAT
   struct grub_fat_dir_node dir;
+  struct grub_fat_dir_entry entry;
 #else
   struct grub_fat_dir_entry dir;
 #endif
@@ -642,27 +643,27 @@ grub_fat_iterate_dir_next (grub_fshelp_node_t node,
   grub_memset (&ctxt->dir, 0, sizeof (ctxt->dir));
   while (1)
     {
-      struct grub_fat_dir_entry dir;
+      struct grub_fat_dir_entry *dir = &ctxt->entry;
 
-      ctxt->offset += sizeof (dir);
+      ctxt->offset += sizeof (*dir);
 
-      if (grub_fat_read_data (node->disk, node, 0, 0, ctxt->offset, sizeof (dir),
-			      (char *) &dir)
-	   != sizeof (dir))
+      if (grub_fat_read_data (node->disk, node, 0, 0, ctxt->offset, sizeof (*dir),
+			      (char *) dir)
+	   != sizeof (*dir))
 	break;
 
-      if (dir.entry_type == 0)
+      if (dir->entry_type == 0)
 	break;
-      if (!(dir.entry_type & 0x80))
+      if (!(dir->entry_type & 0x80))
 	continue;
 
-      if (dir.entry_type == 0x85)
+      if (dir->entry_type == 0x85)
 	{
 	  unsigned i, nsec, slots = 0;
 
-	  nsec = dir.type_specific.file.secondary_count;
+	  nsec = dir->type_specific.file.secondary_count;
 
-	  ctxt->dir.attr = grub_cpu_to_le16 (dir.type_specific.file.attr);
+	  ctxt->dir.attr = grub_cpu_to_le16 (dir->type_specific.file.attr);
 	  ctxt->dir.have_stream = 0;
 	  for (i = 0; i < nsec; i++)
 	    {
@@ -705,7 +706,7 @@ grub_fat_iterate_dir_next (grub_fshelp_node_t node,
 
 	  if (i != nsec)
 	    {
-	      ctxt->offset -= sizeof (dir);
+	      ctxt->offset -= sizeof (*dir);
 	      continue;
 	    }
 
@@ -715,16 +716,16 @@ grub_fat_iterate_dir_next (grub_fshelp_node_t node,
 	  return 0;
 	}
       /* Allocation bitmap. */
-      if (dir.entry_type == 0x81)
+      if (dir->entry_type == 0x81)
 	continue;
       /* Upcase table. */
-      if (dir.entry_type == 0x82)
+      if (dir->entry_type == 0x82)
 	continue;
       /* Volume label. */
-      if (dir.entry_type == 0x83)
+      if (dir->entry_type == 0x83)
 	continue;
       grub_dprintf ("exfat", "unknown primary type 0x%02x\n",
-		    dir.entry_type);
+		    dir->entry_type);
     }
   return grub_errno ? : GRUB_ERR_EOF;
 }
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2 1/2] exfat: Save the matching directory entry when iterating
  2020-03-03 19:40 [PATCH v2 1/2] exfat: Save the matching directory entry when iterating David Michael
@ 2020-03-06 12:02 ` Daniel Kiper
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Kiper @ 2020-03-06 12:02 UTC (permalink / raw)
  To: David Michael; +Cc: grub-devel

On Tue, Mar 03, 2020 at 02:40:54PM -0500, David Michael wrote:
> This provides the node's attributes outside the search function.
>
> Signed-off-by: David Michael <fedora.dm0@gmail.com>

Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>

...except one nit...

> ---
>
> I had to copy an extra struct to support exfat mtimes, so I put it in a
> separate patch for readability.

Next time please add explanation why, like above one, to the proper
commit message. This time I will move it for you.

Daniel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-03-06 12:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-03 19:40 [PATCH v2 1/2] exfat: Save the matching directory entry when iterating David Michael
2020-03-06 12:02 ` Daniel Kiper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.