Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 21117
b: refs/heads/master
c: a6a0763
h: refs/heads/master
i:
  21115: 6970196
v: v3
  • Loading branch information
Al Viro committed Mar 18, 2006
1 parent 71406c0 commit fd46620
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 12a057321529df2fb650ac5f34dfd7abcca667df
refs/heads/master: a6a0763a60eef374d4f02f82a6ecb6a74f380fcb
14 changes: 13 additions & 1 deletion trunk/block/cfq-iosched.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ static int cfq_slice_idle = HZ / 100;
*/
static const int cfq_max_depth = 2;

static DEFINE_RWLOCK(cfq_exit_lock);

/*
* for the hash of cfqq inside the cfqd
*/
Expand Down Expand Up @@ -1354,13 +1356,19 @@ static inline void changed_ioprio(struct cfq_io_context *cic)
*/
static int cfq_ioc_set_ioprio(struct io_context *ioc, unsigned int ioprio)
{
struct cfq_io_context *cic = ioc->cic;
struct cfq_io_context *cic;

write_lock(&cfq_exit_lock);

cic = ioc->cic;

changed_ioprio(cic);

list_for_each_entry(cic, &cic->list, list)
changed_ioprio(cic);

write_unlock(&cfq_exit_lock);

return 0;
}

Expand Down Expand Up @@ -1450,8 +1458,10 @@ cfq_get_io_context(struct cfq_data *cfqd, pid_t pid, gfp_t gfp_mask)
*/
cic->ioc = ioc;
cic->key = cfqd;
read_lock(&cfq_exit_lock);
ioc->set_ioprio = cfq_ioc_set_ioprio;
ioc->cic = cic;
read_unlock(&cfq_exit_lock);
} else {
struct cfq_io_context *__cic;

Expand Down Expand Up @@ -1487,7 +1497,9 @@ cfq_get_io_context(struct cfq_data *cfqd, pid_t pid, gfp_t gfp_mask)

__cic->ioc = ioc;
__cic->key = cfqd;
read_lock(&cfq_exit_lock);
list_add(&__cic->list, &cic->list);
read_unlock(&cfq_exit_lock);
cic = __cic;
}

Expand Down

0 comments on commit fd46620

Please sign in to comment.