diff options
| -rw-r--r-- | Documentation/ABI/obsolete/proc-sys-vm-nr_pdflush_threads | 5 | ||||
| -rw-r--r-- | Documentation/feature-removal-schedule.txt | 8 | ||||
| -rw-r--r-- | Documentation/sysctl/vm.txt | 11 | ||||
| -rw-r--r-- | fs/fs-writeback.c | 5 | ||||
| -rw-r--r-- | include/linux/backing-dev.h | 3 | ||||
| -rw-r--r-- | include/linux/writeback.h | 5 | ||||
| -rw-r--r-- | kernel/sysctl.c | 8 | ||||
| -rw-r--r-- | kernel/sysctl_binary.c | 2 | ||||
| -rw-r--r-- | mm/backing-dev.c | 20 | 
9 files changed, 40 insertions, 27 deletions
diff --git a/Documentation/ABI/obsolete/proc-sys-vm-nr_pdflush_threads b/Documentation/ABI/obsolete/proc-sys-vm-nr_pdflush_threads new file mode 100644 index 00000000000..b0b0eeb20fe --- /dev/null +++ b/Documentation/ABI/obsolete/proc-sys-vm-nr_pdflush_threads @@ -0,0 +1,5 @@ +What:		/proc/sys/vm/nr_pdflush_threads +Date:		June 2012 +Contact:	Wanpeng Li <liwp@linux.vnet.ibm.com> +Description: Since pdflush is replaced by per-BDI flusher, the interface of old pdflush +             exported in /proc/sys/vm/ should be removed. diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index e9237fb7195..88f2fa48bb6 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt @@ -13,6 +13,14 @@ Who:	Jim Cromie <jim.cromie@gmail.com>, Jason Baron <jbaron@redhat.com>  --------------------------- +What: /proc/sys/vm/nr_pdflush_threads +When: 2012 +Why: Since pdflush is deprecated, the interface exported in /proc/sys/vm/ +     should be removed. +Who: Wanpeng Li <liwp@linux.vnet.ibm.com> + +--------------------------- +  What:	CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle  When:	2012  Why:	This optional sub-feature of APM is of dubious reliability, diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index 84eb25cd69a..06d662b1c5d 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt @@ -42,7 +42,6 @@ Currently, these files are in /proc/sys/vm:  - mmap_min_addr  - nr_hugepages  - nr_overcommit_hugepages -- nr_pdflush_threads  - nr_trim_pages         (only if CONFIG_MMU=n)  - numa_zonelist_order  - oom_dump_tasks @@ -426,16 +425,6 @@ See Documentation/vm/hugetlbpage.txt  ============================================================== -nr_pdflush_threads - -The current number of pdflush threads.  This value is read-only. -The value changes according to the number of dirty pages in the system. - -When necessary, additional pdflush threads are created, one per second, up to -nr_pdflush_threads_max. - -============================================================== -  nr_trim_pages  This is available only on NOMMU kernels. diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 50d0b78130a..be3efc4f64f 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -52,11 +52,6 @@ struct wb_writeback_work {  	struct completion *done;	/* set if the caller waits */  }; -/* - * We don't actually have pdflush, but this one is exported though /proc... - */ -int nr_pdflush_threads; -  /**   * writeback_in_progress - determine whether there is writeback in progress   * @bdi: the device's backing_dev_info structure. diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 489de625cd2..c97c6b9cd38 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -17,6 +17,7 @@  #include <linux/timer.h>  #include <linux/writeback.h>  #include <linux/atomic.h> +#include <linux/sysctl.h>  struct page;  struct device; @@ -304,6 +305,8 @@ void clear_bdi_congested(struct backing_dev_info *bdi, int sync);  void set_bdi_congested(struct backing_dev_info *bdi, int sync);  long congestion_wait(int sync, long timeout);  long wait_iff_congested(struct zone *zone, int sync, long timeout); +int pdflush_proc_obsolete(struct ctl_table *table, int write, +		void __user *buffer, size_t *lenp, loff_t *ppos);  static inline bool bdi_cap_writeback_dirty(struct backing_dev_info *bdi)  { diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 6d0a0fcd80e..c66fe3332d8 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -189,9 +189,4 @@ void tag_pages_for_writeback(struct address_space *mapping,  void account_page_redirty(struct page *page); -/* pdflush.c */ -extern int nr_pdflush_threads;	/* Global so it can be exported to sysctl -				   read-only. */ - -  #endif		/* WRITEBACK_H */ diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 97186b99b0e..6502d35a25b 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1101,11 +1101,9 @@ static struct ctl_table vm_table[] = {  		.extra1		= &zero,  	},  	{ -		.procname	= "nr_pdflush_threads", -		.data		= &nr_pdflush_threads, -		.maxlen		= sizeof nr_pdflush_threads, -		.mode		= 0444 /* read-only*/, -		.proc_handler	= proc_dointvec, +		.procname       = "nr_pdflush_threads", +		.mode           = 0444 /* read-only */, +		.proc_handler   = pdflush_proc_obsolete,  	},  	{  		.procname	= "swappiness", diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c index a650694883a..65bdcf198d4 100644 --- a/kernel/sysctl_binary.c +++ b/kernel/sysctl_binary.c @@ -147,7 +147,7 @@ static const struct bin_table bin_vm_table[] = {  	{ CTL_INT,	VM_DIRTY_RATIO,			"dirty_ratio" },  	/* VM_DIRTY_WB_CS "dirty_writeback_centisecs" no longer used */  	/* VM_DIRTY_EXPIRE_CS "dirty_expire_centisecs" no longer used */ -	{ CTL_INT,	VM_NR_PDFLUSH_THREADS,		"nr_pdflush_threads" }, +	/* VM_NR_PDFLUSH_THREADS "nr_pdflush_threads" no longer used */  	{ CTL_INT,	VM_OVERCOMMIT_RATIO,		"overcommit_ratio" },  	/* VM_PAGEBUF unused */  	/* VM_HUGETLB_PAGES "nr_hugepages" no longer used */ diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 3387aea1120..6b4718e2ee3 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -886,3 +886,23 @@ out:  	return ret;  }  EXPORT_SYMBOL(wait_iff_congested); + +int pdflush_proc_obsolete(struct ctl_table *table, int write, +			void __user *buffer, size_t *lenp, loff_t *ppos) +{ +	char kbuf[] = "0\n"; + +	if (*ppos) { +		*lenp = 0; +		return 0; +	} + +	if (copy_to_user(buffer, kbuf, sizeof(kbuf))) +		return -EFAULT; +	printk_once(KERN_WARNING "%s exported in /proc is scheduled for removal\n", +			table->procname); + +	*lenp = 2; +	*ppos += *lenp; +	return 2; +}  |