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-02-03 03:15:46.000000000 -0800 +++ devel-akpm/block/blktrace.c 2006-02-03 03:15:46.000000000 -0800 @@ -140,7 +140,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; @@ -148,7 +148,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); @@ -235,7 +235,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; @@ -280,10 +280,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) _