Reviewed-By : Vladimir Serbinenko phco...@gmail.com Le mer. 4 déc. 2024, 17:12, Eric Sandeen <sand...@redhat.com> a écrit :
> When large extent counter / NREXT64 support was added to grub, it missed > a couple of direct reads of nextents which need to be changed to the new > NREXT64-aware helper as well. Without this, we'll have mis-reads of some > directories with this feature enabled. > > (The large extent counter fix likely raced on merge with > 07318ee7e ("fs/xfs: Fix XFS directory extent parsing") which added the new > direct nextents reads just prior, causing this issue.) > > Fixes: aa7c1322671e ("fs/xfs: Add large extent counters incompat feature > support") > Signed-off-by: Eric Sandeen <sand...@redhat.com> > --- > > diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c > index 8e02ab4a3..92046f9bd 100644 > --- a/grub-core/fs/xfs.c > +++ b/grub-core/fs/xfs.c > @@ -926,7 +926,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, > * Leaf and tail information are only in the data block if the > number > * of extents is 1. > */ > - if (dir->inode.nextents == grub_cpu_to_be32_compile_time (1)) > + if (grub_xfs_get_inode_nextents(&dir->inode) == 1) > { > struct grub_xfs_dirblock_tail *tail = grub_xfs_dir_tail > (dir->data, dirblock); > > @@ -980,7 +980,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, > * The expected number of directory entries is only > tracked for the > * single extent case. > */ > - if (dir->inode.nextents == grub_cpu_to_be32_compile_time > (1)) > + if (grub_xfs_get_inode_nextents(&dir->inode) == 1) > { > /* Check if last direntry in this block is reached. */ > entries--; > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel >
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel