aboutsummaryrefslogtreecommitdiff
path: root/fs/bio.c
diff options
context:
space:
mode:
authorSultan Qasim Khan <sultanqasim@gmail.com>2015-09-06 17:59:58 -0400
committerMister Oyster <oysterized@gmail.com>2017-09-25 20:26:59 +0200
commit56b31b8c5ade6986bfbb064e5127d1ac79e597fb (patch)
tree6a3b90d31d7ad18f9a691bccb4b8c55692edc741 /fs/bio.c
parent6f44eca8c982bcebea87cca776193ddefa062a6f (diff)
block: zram: Backport from Linux 4.1
Change-Id: I23f6f75979077992298d848efd79a6efc0d776bd
Diffstat (limited to 'fs/bio.c')
-rw-r--r--fs/bio.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/fs/bio.c b/fs/bio.c
index 5e7507d79..43b251939 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -1683,6 +1683,34 @@ void bio_check_pages_dirty(struct bio *bio)
}
}
+void generic_start_io_acct(int rw, unsigned long sectors,
+ struct hd_struct *part)
+{
+ int cpu = part_stat_lock();
+
+ part_round_stats(cpu, part);
+ part_stat_inc(cpu, part, ios[rw]);
+ part_stat_add(cpu, part, sectors[rw], sectors);
+ part_inc_in_flight(part, rw);
+
+ part_stat_unlock();
+}
+EXPORT_SYMBOL(generic_start_io_acct);
+
+void generic_end_io_acct(int rw, struct hd_struct *part,
+ unsigned long start_time)
+{
+ unsigned long duration = jiffies - start_time;
+ int cpu = part_stat_lock();
+
+ part_stat_add(cpu, part, ticks[rw], duration);
+ part_round_stats(cpu, part);
+ part_dec_in_flight(part, rw);
+
+ part_stat_unlock();
+}
+EXPORT_SYMBOL(generic_end_io_acct);
+
#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
void bio_flush_dcache_pages(struct bio *bi)
{