From: Sebastian Ott Date: Mon, 22 Jun 2009 10:08:21 +0000 (+0200) Subject: [S390] dasd: fix refcounting in dasd_change_state X-Git-Tag: v2.6.31-rc1~59^2~3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=181d95229b0931ee2ce6aad7348079cbc10e8d05;p=pandora-kernel.git [S390] dasd: fix refcounting in dasd_change_state To set a dasd online dasd_change_state is called twice. The first cycle will schedule initial analysis of the device, set the rc to -EAGAIN and will not touch the device state any more. The initial analysis will in turn call dasd_change_state to increase the state to the final DASD_STATE_ONLINE. If the dasd_change_state on the second thread outruns the other one both finish with the state set to DASD_STATE_ONLINE and the device refcount will be decreased by 2. Fix this by leaving dasd_change_state on rc == -EAGAIN so that the refcount will always be decreased by 1. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky --- Reading git-diff-tree failed