blktrace: Make sure BLKTRACETEARDOWN does the full cleanup.
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Wed, 21 Nov 2007 11:25:41 +0000 (12:25 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 27 Nov 2007 08:19:39 +0000 (09:19 +0100)
commit35fc51e7a5056889421270c1fb63d8ec45fbccf4
tree775462a1cc541b5442648343293f50263f5beb45
parent8c27eba54970c6ebbb408186e5baa2274435e869
blktrace: Make sure BLKTRACETEARDOWN does the full cleanup.

if blktrace program segfault it will not be able
to call BLKTRACETEARDOWN. Now if we run the blktrace
again that would result in a failure to create the
block/<device> debugfs directory.This will result
in blk_remove_root() to be called which will set
blk_tree_root to NULL. But the  debugfs block dir
still exist because it contain subdirectory.

Now if we try to fix it using BLKTRACETEARDOWN
it won't work because blk_tree_root is NULL.

Fix the same.

Tested as below

root@qemu-image:/home/kvaneesh/blktrace# ./blktrace  -d /dev/hdc
Segmentation fault
root@qemu-image:/home/kvaneesh/blktrace# ./blktrace  -d /dev/hdc
BLKTRACESETUP: No such file or directory
Failed to start trace on /dev/hdc
root@qemu-image:/home/kvaneesh/blktrace# ./blktrace  -k /dev/hdc
root@qemu-image:/home/kvaneesh/blktrace# ./blktrace  -d /dev/hdc

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/blktrace.c