On Wed, May 25, 2022 at 10:32:22AM +0800, Yue Hu wrote: > After waiting for the volume to complete the acquisition with timeout, > the if condition under which potential volume collision occurs should be > acquire the volume is still pending rather than not pending so that we > will continue to wait until the pending flag is cleared. Also, use the > existing test pending wrapper directly instead of test_bit(). > > Signed-off-by: Yue Hu <huyue2@xxxxxxxxxxx> > --- Looks good to me, Reviewed-by: Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx> Thanks, Gao Xiang > fs/fscache/volume.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/fscache/volume.c b/fs/fscache/volume.c > index 71d3a6d6d72c..f2009cc22002 100644 > --- a/fs/fscache/volume.c > +++ b/fs/fscache/volume.c > @@ -143,7 +143,7 @@ static void fscache_wait_on_volume_collision(struct fscache_volume *candidate, > { > wait_var_event_timeout(&candidate->flags, > !fscache_is_acquire_pending(candidate), 20 * HZ); > - if (!fscache_is_acquire_pending(candidate)) { > + if (fscache_is_acquire_pending(candidate)) { > pr_notice("Potential volume collision new=%08x old=%08x", > candidate->debug_id, collidee_debug_id); > fscache_stat(&fscache_n_volumes_collision); > @@ -182,7 +182,7 @@ static bool fscache_hash_volume(struct fscache_volume *candidate) > hlist_bl_add_head(&candidate->hash_link, h); > hlist_bl_unlock(h); > > - if (test_bit(FSCACHE_VOLUME_ACQUIRE_PENDING, &candidate->flags)) > + if (fscache_is_acquire_pending(candidate)) > fscache_wait_on_volume_collision(candidate, collidee_debug_id); > return true; > > -- > 2.17.1 > -- > Linux-cachefs mailing list > Linux-cachefs@xxxxxxxxxx > https://listman.redhat.com/mailman/listinfo/linux-cachefs -- Linux-cachefs mailing list Linux-cachefs@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/linux-cachefs