Skip to content
Snippets Groups Projects
vmscan.c 82.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • static ssize_t write_scan_unevictable_node(struct sys_device *dev,
    					   struct sysdev_attribute *attr,
    					const char *buf, size_t count)
    {
    	struct zone *node_zones = NODE_DATA(dev->id)->node_zones;
    	struct zone *zone;
    	unsigned long res;
    	unsigned long req = strict_strtoul(buf, 10, &res);
    
    	if (!req)
    		return 1;	/* zero is no-op */
    
    	for (zone = node_zones; zone - node_zones < MAX_NR_ZONES; ++zone) {
    		if (!populated_zone(zone))
    			continue;
    		scan_zone_unevictable_pages(zone);
    	}
    	return 1;
    }
    
    
    static SYSDEV_ATTR(scan_unevictable_pages, S_IRUGO | S_IWUSR,
    			read_scan_unevictable_node,
    			write_scan_unevictable_node);
    
    int scan_unevictable_register_node(struct node *node)
    {
    	return sysdev_create_file(&node->sysdev, &attr_scan_unevictable_pages);
    }
    
    void scan_unevictable_unregister_node(struct node *node)
    {
    	sysdev_remove_file(&node->sysdev, &attr_scan_unevictable_pages);
    }