Index: linux-2.6.20-rc5/include/linux/cpuset.h =================================================================== --- linux-2.6.20-rc5.orig/include/linux/cpuset.h 2007-01-22 13:04:31.000000000 -0600 +++ linux-2.6.20-rc5/include/linux/cpuset.h 2007-01-22 13:06:51.691390590 -0600 @@ -80,8 +80,10 @@ extern void cpuset_track_online_nodes(vo */ #if MAX_NUMNODES <= BITS_PER_LONG #define cpuset_update_dirty_nodes(__mapping, __node) \ - if (!node_isset((__node, (__mapping)->dirty_nodes) \ - node_set((__node), (__mapping)->dirty_inodes) + do { \ + if (!node_isset((__node, (__mapping)->dirty_nodes))) \ + node_set((__node), (__mapping)->dirty_inodes); \ + } while (0) #define cpuset_clear_dirty_nodes(__mapping) \ (__mapping)->dirty_nodes = NODE_MASK_NONE Index: linux-2.6.20-rc5/kernel/cpuset.c =================================================================== --- linux-2.6.20-rc5.orig/kernel/cpuset.c 2007-01-22 13:04:31.000000000 -0600 +++ linux-2.6.20-rc5/kernel/cpuset.c 2007-01-22 13:07:58.943746472 -0600 @@ -4,7 +4,7 @@ * Processor and Memory placement constraints for sets of tasks. * * Copyright (C) 2003 BULL SA. - * Copyright (C) 2004-2006 Silicon Graphics, Inc. + * Copyright (C) 2004-2007 Silicon Graphics, Inc. * * Portions derived from Patrick Mochel's sysfs code. * sysfs is Copyright (c) 2001-3 Patrick Mochel @@ -12,6 +12,7 @@ * 2003-10-10 Written by Simon Derr. * 2003-10-22 Updates by Stephen Hemminger. * 2004 May-July Rework by Paul Jackson. + * 2007 Writeback capability by Christoph Lameter. * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of the Linux