diff options
author | Dmitry Monakhov <dmonakhov@openvz.org> | 2010-02-27 12:35:13 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2010-02-28 13:47:19 -0500 |
commit | 9a8c28c8311e30ba97499447d5a11662f5aea094 (patch) | |
tree | b0260ab00c6e24fb02ca1cb3c147350e933c79ba /kernel/trace/blktrace.c | |
parent | 9f7cdbc33f36d28e57eaba0093f68f0d14c38c5b (diff) |
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, | |||
540 | if (ret) | 540 | if (ret) |
541 | return ret; | 541 | return ret; |
542 | 542 | ||
543 | if (copy_to_user(arg, &buts, sizeof(buts))) | 543 | if (copy_to_user(arg, &buts, sizeof(buts))) { |
544 | blk_trace_remove(q); | ||
544 | return -EFAULT; | 545 | return -EFAULT; |
545 | 546 | } | |
546 | return 0; | 547 | return 0; |
547 | } | 548 | } |
548 | EXPORT_SYMBOL_GPL(blk_trace_setup); | 549 | EXPORT_SYMBOL_GPL(blk_trace_setup); |