diff -NurpP linux-2.6-cvs-20051207/drivers/block/cfq-iosched.c linux-2.6-cvs-20051207-iosched/drivers/block/cfq-iosched.c --- linux-2.6-cvs-20051207/drivers/block/cfq-iosched.c 2005-08-09 02:18:37 +0200 +++ linux-2.6-cvs-20051207-iosched/drivers/block/cfq-iosched.c 2005-12-07 20:21:02 +0100 @@ -88,10 +88,11 @@ enum { CFQ_KEY_TGID, CFQ_KEY_UID, CFQ_KEY_GID, + CFQ_KEY_XID, CFQ_KEY_LAST, }; -static char *cfq_key_types[] = { "pgid", "tgid", "uid", "gid", NULL }; +static char *cfq_key_types[] = { "pgid", "tgid", "uid", "gid", "xid", NULL }; static kmem_cache_t *crq_pool; static kmem_cache_t *cfq_pool; @@ -209,6 +210,8 @@ cfq_hash_key(struct cfq_data *cfqd, stru * optimize this so that ->key_type is the offset into the struct */ switch (cfqd->key_type) { + case CFQ_KEY_XID: + return tsk->xid; case CFQ_KEY_PGID: return process_group(tsk); default: @@ -1639,6 +1642,8 @@ cfq_set_key_type(struct cfq_data *cfqd, cfqd->key_type = CFQ_KEY_UID; else if (!strncmp(page, "gid", 3)) cfqd->key_type = CFQ_KEY_GID; + else if (!strncmp(page, "xid", 3)) + cfqd->key_type = CFQ_KEY_XID; spin_unlock_irq(cfqd->queue->queue_lock); return count; }