diff -urN oldtree/fs/squashfs/inode.c newtree/fs/squashfs/inode.c
--- oldtree/fs/squashfs/inode.c	2006-08-20 06:03:34.824530750 -0400
+++ newtree/fs/squashfs/inode.c	2006-08-20 07:03:53.730698250 -0400
@@ -45,7 +45,7 @@
 #include "squashfs.h"
 
 static void squashfs_put_super(struct super_block *);
-static int squashfs_statfs(struct super_block *, struct kstatfs *);
+static int squashfs_statfs(struct dentry *, struct kstatfs *);
 static int squashfs_symlink_readpage(struct file *file, struct page *page);
 static int squashfs_readpage(struct file *file, struct page *page);
 static int squashfs_readpage4K(struct file *file, struct page *page);
@@ -60,8 +60,8 @@
 static long long read_blocklist(struct inode *inode, int index,
 				int readahead_blks, char *block_list,
 				unsigned short **block_p, unsigned int *bsize);
-static struct super_block *squashfs_get_sb(struct file_system_type *, int,
-				const char *, void *);
+static int squashfs_get_sb(struct file_system_type *, int,
+				const char *, void *, struct vfsmount *);
 
 
 static z_stream stream;
@@ -607,7 +607,6 @@
 			i->i_fop = &generic_ro_fops;
 			i->i_mode |= S_IFREG;
 			i->i_blocks = ((i->i_size - 1) >> 9) + 1;
-			i->i_blksize = PAGE_CACHE_SIZE;
 			SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
 			SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
 			SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
@@ -660,7 +659,6 @@
 			i->i_fop = &generic_ro_fops;
 			i->i_mode |= S_IFREG;
 			i->i_blocks = ((i->i_size - 1) >> 9) + 1;
-			i->i_blksize = PAGE_CACHE_SIZE;
 			SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
 			SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
 			SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
@@ -1148,17 +1146,16 @@
 }
 
 
-static int squashfs_statfs(struct super_block *s, struct kstatfs *buf)
+static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf)
 {
-	struct squashfs_sb_info *msblk = s->s_fs_info;
-	struct squashfs_super_block *sblk = &msblk->sblk;
+	struct squashfs_super_block *sblk = dentry->d_sb;
 
 	TRACE("Entered squashfs_statfs\n");
 
 	buf->f_type = SQUASHFS_MAGIC;
 	buf->f_bsize = sblk->block_size;
 	buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1;
-	buf->f_bfree = buf->f_bavail = 0;
+	buf->f_bfree = 0;
 	buf->f_files = sblk->inodes;
 	buf->f_ffree = 0;
 	buf->f_namelen = SQUASHFS_NAME_LEN;
@@ -2030,10 +2027,10 @@
 }
 
 
-static struct super_block *squashfs_get_sb(struct file_system_type *fs_type,
-				int flags, const char *dev_name, void *data)
+static int squashfs_get_sb(struct file_system_type *fs_type,
+				int flags, const char *dev_name, void *data, struct vfsmount *mnt)
 {
-	return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super);
+	return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super, mnt);
 }
 
 
diff -urN oldtree/fs/squashfs/squashfs2_0.c newtree/fs/squashfs/squashfs2_0.c
--- oldtree/fs/squashfs/squashfs2_0.c	2006-08-20 06:03:34.836531500 -0400
+++ newtree/fs/squashfs/squashfs2_0.c	2006-08-20 07:04:01.219166250 -0400
@@ -228,7 +228,6 @@
 			i->i_atime.tv_sec = inodep->mtime;
 			i->i_ctime.tv_sec = inodep->mtime;
 			i->i_blocks = ((i->i_size - 1) >> 9) + 1;
-			i->i_blksize = PAGE_CACHE_SIZE;
 			SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
 			SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
 			SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
diff -urN oldtree/fs/unionfs/unionfs.h newtree/fs/unionfs/unionfs.h
--- oldtree/fs/unionfs/unionfs.h	2006-08-20 06:03:56.989916000 -0400
+++ newtree/fs/unionfs/unionfs.h	2006-08-20 07:06:30.192476500 -0400
@@ -514,7 +514,6 @@
 	dest->i_atime = src->i_atime;
 	dest->i_mtime = src->i_mtime;
 	dest->i_ctime = src->i_ctime;
-	dest->i_blksize = src->i_blksize;
 	dest->i_blkbits = src->i_blkbits;
 	dest->i_size = src->i_size;
 	dest->i_blocks = src->i_blocks;
diff -urN oldtree/include/linux/init_task.h newtree/include/linux/init_task.h
--- oldtree/include/linux/init_task.h	2006-08-19 09:15:21.000000000 -0400
+++ newtree/include/linux/init_task.h	2006-08-20 06:17:46.065730000 -0400
@@ -91,6 +91,7 @@
  *  INIT_TASK is used to set up the first task table, touch at
  * your own risk!. Base=0, limit=0x1fffff (=2MB)
  */
+#ifdef CONFIG_INGOSCHED
 #define INIT_TASK(tsk)	\
 {									\
 	.state		= 0,						\
@@ -98,16 +99,9 @@
 	.usage		= ATOMIC_INIT(2),				\
 	.flags		= 0,						\
 	.lock_depth	= -1,						\
-#ifdef CONFIG_INGOSCHED                                                 \
         .prio           = MAX_PRIO-20,                                  \
         .static_prio    = MAX_PRIO-20,                                  \
         .normal_prio    = MAX_PRIO-20,                                  \
-#endif                                                                  \
-#ifdef CONFIG_STAIRCASE                                                 \
-	.prio		= MAX_PRIO-21,					\
-	.static_prio	= MAX_PRIO-21,					\
-	.normal_prio	= MAX_PRIO-21,					\
-#endif                                                                  \
 	.policy		= SCHED_NORMAL,					\
 	.cpus_allowed	= CPU_MASK_ALL,					\
 	.mm		= NULL,						\
@@ -141,6 +135,7 @@
 		.signal = {{0}}},					\
 	.blocked	= {{0}},					\
 	.alloc_lock	= __SPIN_LOCK_UNLOCKED(tsk.alloc_lock),		\
+	.mutexes_held	= 0,						\
 	.journal_info	= NULL,						\
 	.cpu_timers	= INIT_CPU_TIMERS(tsk.cpu_timers),		\
 	.fs_excl	= ATOMIC_INIT(0),				\
@@ -148,7 +143,60 @@
 	INIT_TRACE_IRQFLAGS						\
 	INIT_LOCKDEP							\
 }
+#endif
 
+#ifdef CONFIG_STAIRCASE
+#define INIT_TASK(tsk)  \
+{                                                                       \
+        .state          = 0,                                            \
+        .thread_info    = &init_thread_info,                            \
+        .usage          = ATOMIC_INIT(2),                               \
+        .flags          = 0,                                            \
+        .lock_depth     = -1,                                           \
+        .prio           = MAX_PRIO-21,                                  \
+        .static_prio    = MAX_PRIO-21,                                  \
+        .normal_prio    = MAX_PRIO-21,                                  \
+        .policy         = SCHED_NORMAL,                                 \
+        .cpus_allowed   = CPU_MASK_ALL,                                 \
+        .mm             = NULL,                                         \
+        .active_mm      = &init_mm,                                     \
+        .run_list       = LIST_HEAD_INIT(tsk.run_list),                 \
+        .ioprio         = 0,                                            \
+        .time_slice     = HZ,                                           \
+        .tasks          = LIST_HEAD_INIT(tsk.tasks),                    \
+        .ptrace_children= LIST_HEAD_INIT(tsk.ptrace_children),          \
+        .ptrace_list    = LIST_HEAD_INIT(tsk.ptrace_list),              \
+        .real_parent    = &tsk,                                         \
+        .parent         = &tsk,                                         \
+        .children       = LIST_HEAD_INIT(tsk.children),                 \
+        .sibling        = LIST_HEAD_INIT(tsk.sibling),                  \
+        .group_leader   = &tsk,                                         \
+        .group_info     = &init_groups,                                 \
+        .cap_effective  = CAP_INIT_EFF_SET,                             \
+        .cap_inheritable = CAP_INIT_INH_SET,                            \
+        .cap_permitted  = CAP_FULL_SET,                                 \
+        .keep_capabilities = 0,                                         \
+        .user           = INIT_USER,                                    \
+        .comm           = "swapper",                                    \
+        .thread         = INIT_THREAD,                                  \
+        .fs             = &init_fs,                                     \
+        .files          = &init_files,                                  \
+        .signal         = &init_signals,                                \
+        .sighand        = &init_sighand,                                \
+        .nsproxy        = &init_nsproxy,                                \
+        .pending        = {                                             \
+                .list = LIST_HEAD_INIT(tsk.pending.list),               \
+                .signal = {{0}}},                                       \
+        .blocked        = {{0}},                                        \
+        .alloc_lock     = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock),         \
+        .journal_info   = NULL,                                         \
+        .cpu_timers     = INIT_CPU_TIMERS(tsk.cpu_timers),              \
+        .fs_excl        = ATOMIC_INIT(0),                               \
+        .pi_lock        = SPIN_LOCK_UNLOCKED,                           \
+        INIT_TRACE_IRQFLAGS                                             \
+        INIT_LOCKDEP                                                    \
+}
+#endif
 
 #define INIT_CPU_TIMERS(cpu_timers)					\
 {									\
diff -urN oldtree/include/linux/sched.h newtree/include/linux/sched.h
--- oldtree/include/linux/sched.h	2006-08-20 05:15:43.000000000 -0400
+++ newtree/include/linux/sched.h	2006-08-20 06:17:46.077730750 -0400
@@ -862,7 +862,9 @@
 
 	unsigned long policy;
 	cpumask_t cpus_allowed;
+#ifdef CONFIG_INGOSCHED
 	unsigned int time_slice, first_time_slice;
+#endif
 
 #if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
 	struct sched_info sched_info;
@@ -1022,6 +1024,7 @@
 	struct held_lock held_locks[MAX_LOCK_DEPTH];
 	unsigned int lockdep_recursion;
 #endif
+	unsigned long mutexes_held;
 
 /* journalling filesystem info */
 	void *journal_info;
diff -urN oldtree/kernel/fork.c newtree/kernel/fork.c
--- oldtree/kernel/fork.c	2006-08-20 05:15:43.000000000 -0400
+++ newtree/kernel/fork.c	2006-08-20 06:17:46.093731750 -0400
@@ -1082,6 +1082,7 @@
 	p->io_context = NULL;
 	p->io_wait = NULL;
 	p->audit_context = NULL;
+	p->mutexes_held = 0;
 	cpuset_fork(p);
 #ifdef CONFIG_NUMA
  	p->mempolicy = mpol_copy(p->mempolicy);
diff -urN oldtree/kernel/mutex.c newtree/kernel/mutex.c
--- oldtree/kernel/mutex.c	2006-08-18 15:01:22.000000000 -0400
+++ newtree/kernel/mutex.c	2006-08-20 06:17:46.097732000 -0400
@@ -60,6 +60,16 @@
 static void fastcall noinline __sched
 __mutex_lock_slowpath(atomic_t *lock_count);
 
+static inline void inc_mutex_count(void)
+{
+	current->mutexes_held++;
+}
+
+static inline void dec_mutex_count(void)
+{
+	current->mutexes_held--;
+}
+
 /***
  * mutex_lock - acquire the mutex
  * @lock: the mutex to be acquired
@@ -89,6 +99,7 @@
 	 * 'unlocked' into 'locked' state.
 	 */
 	__mutex_fastpath_lock(&lock->count, __mutex_lock_slowpath);
+	inc_mutex_count();
 }
 
 EXPORT_SYMBOL(mutex_lock);
@@ -114,6 +125,7 @@
 	 * into 'unlocked' state:
 	 */
 	__mutex_fastpath_unlock(&lock->count, __mutex_unlock_slowpath);
+	dec_mutex_count();
 }
 
 EXPORT_SYMBOL(mutex_unlock);
@@ -274,9 +286,14 @@
  */
 int fastcall __sched mutex_lock_interruptible(struct mutex *lock)
 {
+	int ret;
+
 	might_sleep();
-	return __mutex_fastpath_lock_retval
+	ret = __mutex_fastpath_lock_retval
 			(&lock->count, __mutex_lock_interruptible_slowpath);
+	if (likely(!ret))
+		inc_mutex_count();
+	return ret;
 }
 
 EXPORT_SYMBOL(mutex_lock_interruptible);
@@ -331,8 +348,12 @@
  */
 int fastcall __sched mutex_trylock(struct mutex *lock)
 {
-	return __mutex_fastpath_trylock(&lock->count,
+	int ret = __mutex_fastpath_trylock(&lock->count,
 					__mutex_trylock_slowpath);
+
+	if (likely(ret))
+		inc_mutex_count();
+	return ret;
 }
 
 EXPORT_SYMBOL(mutex_trylock);
diff -urN oldtree/kernel/sched_ingosched.c newtree/kernel/sched_ingosched.c
--- oldtree/kernel/sched_ingosched.c	2006-08-20 05:13:15.000000000 -0400
+++ newtree/kernel/sched_ingosched.c	2006-08-20 06:19:48.841403000 -0400
@@ -423,7 +423,7 @@
 
 		/* runqueue-specific stats */
 		seq_printf(seq,
-		    "cpu%d %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu",
+		    "cpu%d %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu",
 		    cpu, rq->yld_both_empty,
 		    rq->yld_act_empty, rq->yld_exp_empty, rq->yld_cnt,
 		    rq->sched_switch, rq->sched_cnt, rq->sched_goidle,
diff -urN oldtree/kernel/sched_staircase.c newtree/kernel/sched_staircase.c
--- oldtree/kernel/sched_staircase.c	2006-08-20 05:09:46.000000000 -0400
+++ newtree/kernel/sched_staircase.c	2006-08-20 06:20:05.954472500 -0400
@@ -346,7 +346,7 @@
 
 		/* runqueue-specific stats */
 		seq_printf(seq,
-		    "cpu%d %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu",
+		    "cpu%d %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu",
 		    cpu, rq->yld_both_empty,
 		    rq->yld_act_empty, rq->yld_exp_empty, rq->yld_cnt,
 		    rq->sched_switch, rq->sched_cnt, rq->sched_goidle,
@@ -493,7 +493,7 @@
 	if (t->sched_info.last_queued)
 		delta_jiffies = now - t->sched_info.last_queued;
 	sched_info_dequeued(t);
-        t->sched_info.max_delay = max(t->sched_info.max_delay, diff);
+        t->sched_info.max_delay = max(t->sched_info.max_delay, delta_jiffies);
 	t->sched_info.run_delay += delta_jiffies;
 	t->sched_info.last_arrival = now;
 	t->sched_info.pcnt++;
