The patch titled vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix has been added to the -mm tree. Its filename is vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> update gfs2 Cc: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> Cc: Ying Han <yinghan@xxxxxxxxxx> Cc: Steven Whitehouse <swhiteho@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/gfs2/quota.c | 12 +++++++----- fs/gfs2/quota.h | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) diff -puN fs/gfs2/quota.c~vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix fs/gfs2/quota.c --- a/fs/gfs2/quota.c~vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix +++ a/fs/gfs2/quota.c @@ -38,6 +38,7 @@ #include <linux/sched.h> #include <linux/slab.h> +#include <linux/mm.h> #include <linux/spinlock.h> #include <linux/completion.h> #include <linux/buffer_head.h> @@ -77,19 +78,20 @@ static LIST_HEAD(qd_lru_list); static atomic_t qd_lru_count = ATOMIC_INIT(0); static DEFINE_SPINLOCK(qd_lru_lock); -int gfs2_shrink_qd_memory(struct shrinker *shrink, int nr, gfp_t gfp_mask) +int gfs2_shrink_qd_memory(struct shrinker *shrink, struct shrink_control *sc) { struct gfs2_quota_data *qd; struct gfs2_sbd *sdp; + int nr_to_scan = sc->nr_to_scan; - if (nr == 0) + if (nr_to_scan == 0) goto out; - if (!(gfp_mask & __GFP_FS)) + if (!(sc->gfp_mask & __GFP_FS)) return -1; spin_lock(&qd_lru_lock); - while (nr && !list_empty(&qd_lru_list)) { + while (nr_to_scan && !list_empty(&qd_lru_list)) { qd = list_entry(qd_lru_list.next, struct gfs2_quota_data, qd_reclaim); sdp = qd->qd_gl->gl_sbd; @@ -110,7 +112,7 @@ int gfs2_shrink_qd_memory(struct shrinke spin_unlock(&qd_lru_lock); kmem_cache_free(gfs2_quotad_cachep, qd); spin_lock(&qd_lru_lock); - nr--; + nr_to_scan--; } spin_unlock(&qd_lru_lock); diff -puN fs/gfs2/quota.h~vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix fs/gfs2/quota.h --- a/fs/gfs2/quota.h~vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix +++ a/fs/gfs2/quota.h @@ -12,6 +12,7 @@ struct gfs2_inode; struct gfs2_sbd; +struct shrink_control; #define NO_QUOTA_CHANGE ((u32)-1) @@ -51,7 +52,8 @@ static inline int gfs2_quota_lock_check( return ret; } -extern int gfs2_shrink_qd_memory(struct shrinker *shrink, int nr, gfp_t gfp_mask); +extern int gfs2_shrink_qd_memory(struct shrinker *shrink, + struct shrink_control *sc); extern const struct quotactl_ops gfs2_quotactl_ops; #endif /* __QUOTA_DOT_H__ */ _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch drivers-video-backlight-adp5520_blc-check-strict_strtoul-return-value.patch mm-nommu-sort-mm-mmap-list-properly-fix.patch mm-per-node-vmstat-show-proper-vmstats-fix.patch mm-mem-hotplug-update-pcp-stat_threshold-when-memory-hotplug-occur-fix.patch mm-mmu_gather-rework-fix.patch mm-uninline-large-generic-tlbh-functions.patch mm-thp-optimize-memcg-charge-in-khugepaged-fix.patch mm-convert-mm-cpu_vm_cpumask-into-cpumask_var_t-fix.patch mm-convert-mm-cpu_vm_cpumask-into-cpumask_var_t-checkpatch-fixes.patch vmscan-change-shrink_slab-interfaces-by-passing-shrink_control-fix.patch vmscan-change-shrink_slab-interfaces-by-passing-shrink_control-fix-2.patch vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix.patch vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-2.patch vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix.patch vmscan-change-shrinker-api-by-passing-shrink_control-struct-fix-4-fix-fix.patch mm-filter-unevictable-page-out-in-deactivate_page-fix.patch mm-filter-unevictable-page-out-in-deactivate_page-fix-fix.patch nommu-add-page-alignment-to-mmap-checkpatch-fixes.patch cris-convert-old-cpumask-api-into-new-one-checkpatch-fixes.patch bitmap-irq-add-smp_affinity_list-interface-to-proc-irq-fix.patch init-calibratec-fix-for-critical-bogomips-intermittent-calculation-failure-checkpatch-fixes.patch init-calibratec-fix-for-critical-bogomips-intermittent-calculation-failure-fix.patch printk-allocate-kernel-log-buffer-earlier-v2-checkpatch-fixes.patch printk-allocate-kernel-log-buffer-earlier-v2-fix.patch drivers-leds-leds-lm3530c-add-regulator-checkpatch-fixes.patch leds-provide-helper-to-register-leds-gpio-devices.patch lru_cache-use-correct-type-in-sizeof-for-allocation-fix.patch percpu_counter-change-return-value-and-add-comments-fix.patch checkpatch-suggest-using-min_t-or-max_t.patch fs-ncpfs-inodec-suppress-used-uninitialised-warning.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html