From: Andrew Morton Cc: Arjan van de Ven Cc: Ingo Molnar Signed-off-by: Andrew Morton --- block/blktrace.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff -puN block/blktrace.c~sem2mutex-blockdev-2-git-blktrace-fix block/blktrace.c --- devel/block/blktrace.c~sem2mutex-blockdev-2-git-blktrace-fix 2006-01-14 01:08:51.000000000 -0800 +++ devel-akpm/block/blktrace.c 2006-01-14 01:09:25.000000000 -0800 @@ -124,7 +124,7 @@ int blk_stop_trace(struct block_device * if (!q) return -ENXIO; - down(&bdev->bd_sem); + mutex_lock(&bdev->bd_mutex); if (q->blk_trace) { bt = q->blk_trace; @@ -132,7 +132,7 @@ int blk_stop_trace(struct block_device * ret = 0; } - up(&bdev->bd_sem); + mutex_unlock(&bdev->bd_mutex); if (bt) blk_cleanup_trace(bt); @@ -214,7 +214,7 @@ int blk_start_trace(struct block_device if (copy_to_user(arg, &buts, sizeof(buts))) return -EFAULT; - down(&bdev->bd_sem); + mutex_lock(&bdev->bd_mutex); ret = -EBUSY; if (q->blk_trace) goto err; @@ -256,10 +256,10 @@ int blk_start_trace(struct block_device bt->pid = buts.pid; q->blk_trace = bt; - up(&bdev->bd_sem); + mutex_unlock(&bdev->bd_mutex); return 0; err: - up(&bdev->bd_sem); + mutex_unlock(&bdev->bd_mutex); if (bt && bt->dropped_file) relayfs_remove_file(bt->dropped_file); if (dir) _