On Mon, 2016-10-17 at 11:55 -0700, Dan Williams wrote: > On Mon, Oct 17, 2016 at 10:40 AM, Kani, Toshimitsu <toshi.kani@xxxxxx > m> wrote: > > > > On Sat, 2016-10-15 at 18:54 +1100, Dave Chinner wrote: > > > > > > On Fri, Oct 14, 2016 at 11:25:13AM -0600, Toshi Kani wrote: > > : > > > > > > > > > > > +static void dax_iostat_start(struct gendisk *disk, struct > > > > iov_iter > > > > *iter, > > > > + unsigned long *start) > > > > +{ > > > > +int rw = iov_iter_rw(iter); > > > > +int sec = iov_iter_count(iter) >> 9; > > > > +int cpu = part_stat_lock(); > > > > + > > > > +*start = jiffies; > > > > +part_round_stats(cpu, &disk->part0); > > > > +part_stat_inc(cpu, &disk->part0, ios[rw]); > > > > +part_stat_add(cpu, &disk->part0, sectors[rw], sec); > > > > +part_inc_in_flight(&disk->part0, rw); > > > > +part_stat_unlock(); > > > > +} > > > > > > Why reimplement generic_start_io_acct() and > > > generic_end_io_acct()? > > > > It was modeled after __nd_iostat_start() / nd_iostart_end(). I > > agree that we can use generic_start_io_acct() and > > generic_end_io_acct() here. > > > > Should we also change the nd interface to use the generic version > > as well? > > Yes, sounds good to me. Will do. Thanks! -Toshi��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥