kcopyd use mutex instead of semaphore
Kcopyd uses a semaphore as mutex. Use the mutex API instead of the (binary) semaphore, Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Cc: Neil Brown <neilb@suse.de> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
094262db9e
commit
def5b5b26e
|
@ -198,7 +198,7 @@ struct kcopyd_job {
|
|||
* These fields are only used if the job has been split
|
||||
* into more manageable parts.
|
||||
*/
|
||||
struct semaphore lock;
|
||||
struct mutex lock;
|
||||
atomic_t sub_jobs;
|
||||
sector_t progress;
|
||||
};
|
||||
|
@ -456,7 +456,7 @@ static void segment_complete(int read_err,
|
|||
sector_t count = 0;
|
||||
struct kcopyd_job *job = (struct kcopyd_job *) context;
|
||||
|
||||
down(&job->lock);
|
||||
mutex_lock(&job->lock);
|
||||
|
||||
/* update the error */
|
||||
if (read_err)
|
||||
|
@ -480,7 +480,7 @@ static void segment_complete(int read_err,
|
|||
job->progress += count;
|
||||
}
|
||||
}
|
||||
up(&job->lock);
|
||||
mutex_unlock(&job->lock);
|
||||
|
||||
if (count) {
|
||||
int i;
|
||||
|
@ -562,7 +562,7 @@ int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from,
|
|||
dispatch_job(job);
|
||||
|
||||
else {
|
||||
init_MUTEX(&job->lock);
|
||||
mutex_init(&job->lock);
|
||||
job->progress = 0;
|
||||
split_job(job);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue