diff options
author | Justin TerAvest <teravest@google.com> | 2011-07-12 02:31:45 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2011-07-12 02:35:10 -0400 |
commit | 4aede84b33d6beb401136a3deca0651ae07c5e99 (patch) | |
tree | 831266dbb15227584da5011ae4bb1e5038a69677 /include/linux | |
parent | a07405b7802691d29ab3b23bdc76ee6d006aad0b (diff) |
fixlet: Remove fs_excl from struct task.
fs_excl is a poor man's priority inheritance for filesystems to hint to
the block layer that an operation is important. It was never clearly
specified, not widely adopted, and will not prevent starvation in many
cases (like across cgroups).
fs_excl was introduced with the time sliced CFQ IO scheduler, to
indicate when a process held FS exclusive resources and thus needed
a boost.
It doesn't cover all file systems, and it was never fully complete.
Lets kill it.
Signed-off-by: Justin TerAvest <teravest@google.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/fs.h | 4 | ||||
-rw-r--r-- | include/linux/init_task.h | 1 | ||||
-rw-r--r-- | include/linux/sched.h | 1 |
3 files changed, 0 insertions, 6 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 6e73e2e9ae33..f6c866c287b5 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1453,10 +1453,6 @@ enum { | |||
1453 | #define vfs_check_frozen(sb, level) \ | 1453 | #define vfs_check_frozen(sb, level) \ |
1454 | wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level))) | 1454 | wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level))) |
1455 | 1455 | ||
1456 | #define get_fs_excl() atomic_inc(¤t->fs_excl) | ||
1457 | #define put_fs_excl() atomic_dec(¤t->fs_excl) | ||
1458 | #define has_fs_excl() atomic_read(¤t->fs_excl) | ||
1459 | |||
1460 | /* | 1456 | /* |
1461 | * until VFS tracks user namespaces for inodes, just make all files | 1457 | * until VFS tracks user namespaces for inodes, just make all files |
1462 | * belong to init_user_ns | 1458 | * belong to init_user_ns |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 580f70c02391..d14e058aaeed 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -176,7 +176,6 @@ extern struct cred init_cred; | |||
176 | .alloc_lock = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock), \ | 176 | .alloc_lock = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock), \ |
177 | .journal_info = NULL, \ | 177 | .journal_info = NULL, \ |
178 | .cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \ | 178 | .cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \ |
179 | .fs_excl = ATOMIC_INIT(0), \ | ||
180 | .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \ | 179 | .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \ |
181 | .timer_slack_ns = 50000, /* 50 usec default slack */ \ | 180 | .timer_slack_ns = 50000, /* 50 usec default slack */ \ |
182 | .pids = { \ | 181 | .pids = { \ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index a837b20ba190..22f54249cde1 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1503,7 +1503,6 @@ struct task_struct { | |||
1503 | short il_next; | 1503 | short il_next; |
1504 | short pref_node_fork; | 1504 | short pref_node_fork; |
1505 | #endif | 1505 | #endif |
1506 | atomic_t fs_excl; /* holding fs exclusive resources */ | ||
1507 | struct rcu_head rcu; | 1506 | struct rcu_head rcu; |
1508 | 1507 | ||
1509 | /* | 1508 | /* |