lkml.org 
[lkml]   [2009]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:tracing/blktrace] blktrace: report EBUSY correctly
    Commit-ID:  15152e448b693fa41de40f1e40ffbe717a3aab88
    Gitweb: http://git.kernel.org/tip/15152e448b693fa41de40f1e40ffbe717a3aab88
    Author: Li Zefan <lizf@cn.fujitsu.com>
    AuthorDate: Fri, 20 Mar 2009 09:49:08 +0800
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Sat, 21 Mar 2009 16:16:54 +0100

    blktrace: report EBUSY correctly

    blk_trace_remove_queue() returns EINVAL if q->blk_trace == NULL,
    but blk_trace_setup_queue() doesn't return EBUSY if
    q->blk_trace != NULL.

    # echo 0 > sdaX/trace/enable
    # echo 0 > sdaX/trace/enable
    bash: echo: write error: Invalid argument
    # echo 1 > sdaX/trace/enable
    # echo 1 > sdaX/trace/enable
    (should return EBUSY)

    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jens Axboe <jens.axboe@oracle.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    LKML-Reference: <49C2F614.2010101@cn.fujitsu.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>


    ---
    kernel/trace/blktrace.c | 9 +++------
    1 files changed, 3 insertions(+), 6 deletions(-)

    diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
    index 11e7c8d..14986af 100644
    --- a/kernel/trace/blktrace.c
    +++ b/kernel/trace/blktrace.c
    @@ -1260,12 +1260,10 @@ static int blk_trace_remove_queue(struct request_queue *q)
    static int blk_trace_setup_queue(struct request_queue *q, dev_t dev)
    {
    struct blk_trace *old_bt, *bt = NULL;
    - int ret;

    - ret = -ENOMEM;
    bt = kzalloc(sizeof(*bt), GFP_KERNEL);
    if (!bt)
    - goto err;
    + return -ENOMEM;

    bt->dev = dev;
    bt->act_mask = (u16)-1;
    @@ -1276,11 +1274,10 @@ static int blk_trace_setup_queue(struct request_queue *q, dev_t dev)
    if (old_bt != NULL) {
    (void)xchg(&q->blk_trace, old_bt);
    kfree(bt);
    - ret = -EBUSY;
    + return -EBUSY;
    }
    +
    return 0;
    -err:
    - return ret;
    }

    /*

    \
     
     \ /
      Last update: 2009-03-21 16:25    [W:0.029 / U:30.812 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site