diff options
author | Dmitry Monakhov <dmonakhov@openvz.org> | 2010-02-27 18:35:13 +0100 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2010-02-28 19:47:19 +0100 |
commit | 9a8c28c8311e30ba97499447d5a11662f5aea094 (patch) | |
tree | b0260ab00c6e24fb02ca1cb3c147350e933c79ba /kernel/trace/blktrace.c | |
parent | blkdev: fix merge_bvec_fn return value checks (diff) | |
download | linux-9a8c28c8311e30ba97499447d5a11662f5aea094.tar.xz linux-9a8c28c8311e30ba97499447d5a11662f5aea094.zip |
blktrace: perform cleanup after setup error
Currently even if BLKTRACESETUP ioctl has failed user must call
BLKTRACETEARDOWN to be shure what all staff was cleaned, which
is contr-intuitive.
Let's setup ioctl make necessery cleanup by it self.
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'kernel/trace/blktrace.c')
-rw-r--r-- | kernel/trace/blktrace.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c index d9d6206e0b14..07f945a99430 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c @@ -540,9 +540,10 @@ int blk_trace_setup(struct request_queue *q, char *name, dev_t dev, if (ret) return ret; - if (copy_to_user(arg, &buts, sizeof(buts))) + if (copy_to_user(arg, &buts, sizeof(buts))) { + blk_trace_remove(q); return -EFAULT; - + } return 0; } EXPORT_SYMBOL_GPL(blk_trace_setup); |