On 06/12/2019 17:39, Josef Bacik wrote: > If we get an -ENOENT back from btrfs_uuid_iter_rem when iterating the > uuid tree we'll just continue and do btrfs_next_item(). However we've > done a btrfs_release_path() at this point and no longer have a valid > path. So increment the key and go back and do a normal search. > > Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx> > --- > v1->v2: > - increase key.offset instead of key.objectid so we don't skip over a bunch of > keys. > > fs/btrfs/uuid-tree.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/fs/btrfs/uuid-tree.c b/fs/btrfs/uuid-tree.c > index 91caab63bdf5..76b84f2397b1 100644 > --- a/fs/btrfs/uuid-tree.c > +++ b/fs/btrfs/uuid-tree.c > @@ -324,6 +324,8 @@ int btrfs_uuid_tree_iterate(struct btrfs_fs_info *fs_info, > } > if (ret < 0 && ret != -ENOENT) > goto out; > + key.offset++; > + goto again_search_slot; > } > item_size -= sizeof(subid_le); > offset += sizeof(subid_le); > Looks good, Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx> -- Johannes Thumshirn SUSE Labs Filesystems jthumshirn@xxxxxxx +49 911 74053 689 SUSE Software Solutions Germany GmbH Maxfeldstr. 5 90409 Nürnberg Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
