diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext4/mballoc.c | 2 | ||||
-rw-r--r-- | fs/nfs/iostat.h | 24 | ||||
-rw-r--r-- | fs/xfs/xfs_mount.c | 12 |
3 files changed, 10 insertions, 28 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index c1e19d5b5985..b1fd3daadc9c 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -3955,7 +3955,7 @@ static void ext4_mb_group_or_file(struct ext4_allocation_context *ac) | |||
3955 | * per cpu locality group is to reduce the contention between block | 3955 | * per cpu locality group is to reduce the contention between block |
3956 | * request from multiple CPUs. | 3956 | * request from multiple CPUs. |
3957 | */ | 3957 | */ |
3958 | ac->ac_lg = per_cpu_ptr(sbi->s_locality_groups, raw_smp_processor_id()); | 3958 | ac->ac_lg = __this_cpu_ptr(sbi->s_locality_groups); |
3959 | 3959 | ||
3960 | /* we're going to use group allocation */ | 3960 | /* we're going to use group allocation */ |
3961 | ac->ac_flags |= EXT4_MB_HINT_GROUP_ALLOC; | 3961 | ac->ac_flags |= EXT4_MB_HINT_GROUP_ALLOC; |
diff --git a/fs/nfs/iostat.h b/fs/nfs/iostat.h index ceda50aad73c..46d779abafd3 100644 --- a/fs/nfs/iostat.h +++ b/fs/nfs/iostat.h | |||
@@ -25,13 +25,7 @@ struct nfs_iostats { | |||
25 | static inline void nfs_inc_server_stats(const struct nfs_server *server, | 25 | static inline void nfs_inc_server_stats(const struct nfs_server *server, |
26 | enum nfs_stat_eventcounters stat) | 26 | enum nfs_stat_eventcounters stat) |
27 | { | 27 | { |
28 | struct nfs_iostats *iostats; | 28 | this_cpu_inc(server->io_stats->events[stat]); |
29 | int cpu; | ||
30 | |||
31 | cpu = get_cpu(); | ||
32 | iostats = per_cpu_ptr(server->io_stats, cpu); | ||
33 | iostats->events[stat]++; | ||
34 | put_cpu(); | ||
35 | } | 29 | } |
36 | 30 | ||
37 | static inline void nfs_inc_stats(const struct inode *inode, | 31 | static inline void nfs_inc_stats(const struct inode *inode, |
@@ -44,13 +38,7 @@ static inline void nfs_add_server_stats(const struct nfs_server *server, | |||
44 | enum nfs_stat_bytecounters stat, | 38 | enum nfs_stat_bytecounters stat, |
45 | unsigned long addend) | 39 | unsigned long addend) |
46 | { | 40 | { |
47 | struct nfs_iostats *iostats; | 41 | this_cpu_add(server->io_stats->bytes[stat], addend); |
48 | int cpu; | ||
49 | |||
50 | cpu = get_cpu(); | ||
51 | iostats = per_cpu_ptr(server->io_stats, cpu); | ||
52 | iostats->bytes[stat] += addend; | ||
53 | put_cpu(); | ||
54 | } | 42 | } |
55 | 43 | ||
56 | static inline void nfs_add_stats(const struct inode *inode, | 44 | static inline void nfs_add_stats(const struct inode *inode, |
@@ -65,13 +53,7 @@ static inline void nfs_add_fscache_stats(struct inode *inode, | |||
65 | enum nfs_stat_fscachecounters stat, | 53 | enum nfs_stat_fscachecounters stat, |
66 | unsigned long addend) | 54 | unsigned long addend) |
67 | { | 55 | { |
68 | struct nfs_iostats *iostats; | 56 | this_cpu_add(NFS_SERVER(inode)->io_stats->fscache[stat], addend); |
69 | int cpu; | ||
70 | |||
71 | cpu = get_cpu(); | ||
72 | iostats = per_cpu_ptr(NFS_SERVER(inode)->io_stats, cpu); | ||
73 | iostats->fscache[stat] += addend; | ||
74 | put_cpu(); | ||
75 | } | 57 | } |
76 | #endif | 58 | #endif |
77 | 59 | ||
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 66a888a9ad6f..bfffd6334abb 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c | |||
@@ -2389,12 +2389,12 @@ xfs_icsb_modify_counters( | |||
2389 | { | 2389 | { |
2390 | xfs_icsb_cnts_t *icsbp; | 2390 | xfs_icsb_cnts_t *icsbp; |
2391 | long long lcounter; /* long counter for 64 bit fields */ | 2391 | long long lcounter; /* long counter for 64 bit fields */ |
2392 | int cpu, ret = 0; | 2392 | int ret = 0; |
2393 | 2393 | ||
2394 | might_sleep(); | 2394 | might_sleep(); |
2395 | again: | 2395 | again: |
2396 | cpu = get_cpu(); | 2396 | preempt_disable(); |
2397 | icsbp = (xfs_icsb_cnts_t *)per_cpu_ptr(mp->m_sb_cnts, cpu); | 2397 | icsbp = this_cpu_ptr(mp->m_sb_cnts); |
2398 | 2398 | ||
2399 | /* | 2399 | /* |
2400 | * if the counter is disabled, go to slow path | 2400 | * if the counter is disabled, go to slow path |
@@ -2438,11 +2438,11 @@ again: | |||
2438 | break; | 2438 | break; |
2439 | } | 2439 | } |
2440 | xfs_icsb_unlock_cntr(icsbp); | 2440 | xfs_icsb_unlock_cntr(icsbp); |
2441 | put_cpu(); | 2441 | preempt_enable(); |
2442 | return 0; | 2442 | return 0; |
2443 | 2443 | ||
2444 | slow_path: | 2444 | slow_path: |
2445 | put_cpu(); | 2445 | preempt_enable(); |
2446 | 2446 | ||
2447 | /* | 2447 | /* |
2448 | * serialise with a mutex so we don't burn lots of cpu on | 2448 | * serialise with a mutex so we don't burn lots of cpu on |
@@ -2490,7 +2490,7 @@ slow_path: | |||
2490 | 2490 | ||
2491 | balance_counter: | 2491 | balance_counter: |
2492 | xfs_icsb_unlock_cntr(icsbp); | 2492 | xfs_icsb_unlock_cntr(icsbp); |
2493 | put_cpu(); | 2493 | preempt_enable(); |
2494 | 2494 | ||
2495 | /* | 2495 | /* |
2496 | * We may have multiple threads here if multiple per-cpu | 2496 | * We may have multiple threads here if multiple per-cpu |