Hi, On 8/29/22 9:15 PM, Yu Kuai wrote:
+static bool wait_barrier_nolock(struct r10conf *conf) +{ + unsigned int seq = raw_read_seqcount(&conf->resync_lock.seqcount); + + if (seq & 1) + return false; + + if (READ_ONCE(conf->barrier)) + return false; + + atomic_inc(&conf->nr_pending); + if (!read_seqcount_retry(&conf->resync_lock.seqcount, seq))
I think 'seq' is usually get from read_seqcount_begin.
+ return true; + + atomic_dec(&conf->nr_pending); + return false; +
Thanks, Guoqing