All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
	Len Brown <len.brown@intel.com>,
	mroos@linux.ee, Arjan van de Ven <arjan@linux.intel.com>,
	James Bottomley <JBottomley@parallels.com>
Subject: [PATCH v2 3/4] scsi: queue async scan work to an async_schedule domain
Date: Wed, 30 May 2012 11:21:40 -0700	[thread overview]
Message-ID: <20120530182140.23574.4611.stgit@dwillia2-linux.jf.intel.com> (raw)
In-Reply-To: <20120530182016.23574.11056.stgit@dwillia2-linux.jf.intel.com>

This is preparation to enable async_synchronize_full() to be used as a
replacement for scsi_complete_async_scans(), i.e. to stop leaking scsi
internal details where they are not needed.

Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: James Bottomley <JBottomley@parallels.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 drivers/scsi/scsi_scan.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 5e00e09..fb42aa0 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1847,14 +1847,13 @@ static void do_scsi_scan_host(struct Scsi_Host *shost)
 	}
 }
 
-static int do_scan_async(void *_data)
+static void do_scan_async(void *_data, async_cookie_t c)
 {
 	struct async_scan_data *data = _data;
 	struct Scsi_Host *shost = data->shost;
 
 	do_scsi_scan_host(shost);
 	scsi_finish_async_scan(data);
-	return 0;
 }
 
 /**
@@ -1863,7 +1862,6 @@ static int do_scan_async(void *_data)
  **/
 void scsi_scan_host(struct Scsi_Host *shost)
 {
-	struct task_struct *p;
 	struct async_scan_data *data;
 
 	if (strncmp(scsi_scan_type, "none", 4) == 0)
@@ -1878,9 +1876,11 @@ void scsi_scan_host(struct Scsi_Host *shost)
 		return;
 	}
 
-	p = kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no);
-	if (IS_ERR(p))
-		do_scan_async(data);
+	/* register with the async subsystem so wait_for_device_probe()
+	 * will flush this work
+	 */
+	async_schedule(do_scan_async, data);
+
 	/* scsi_autopm_put_host(shost) is called in scsi_finish_async_scan() */
 }
 EXPORT_SYMBOL(scsi_scan_host);

  parent reply	other threads:[~2012-05-30 18:21 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-30 18:21 [PATCH v2 0/4] fix / cleanup async scsi scanning Dan Williams
2012-05-30 18:21 ` [PATCH v2 1/4] async: introduce 'async_domain' type Dan Williams
2012-05-30 18:21 ` [PATCH v2 2/4] async: make async_synchronize_full() flush all work regardless of domain Dan Williams
2012-05-30 18:21 ` Dan Williams [this message]
2012-05-30 18:21 ` [PATCH v2 4/4] scsi: cleanup usages of scsi_complete_async_scans Dan Williams
2012-05-30 21:34   ` Rafael J. Wysocki
2012-05-30 21:37     ` Rafael J. Wysocki
2012-05-30 21:41     ` Rafael J. Wysocki
2012-05-30 21:49       ` Dan Williams
2012-05-30 21:49         ` Dan Williams
2012-05-30 18:22 ` [PATCH v2 0/4] fix / cleanup async scsi scanning Borislav Petkov
2012-05-30 18:29   ` Dan Williams
2012-05-30 22:33     ` walt
2012-05-31 13:37     ` Borislav Petkov
2012-05-31  9:05 ` mroos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120530182140.23574.4611.stgit@dwillia2-linux.jf.intel.com \
    --to=dan.j.williams@intel.com \
    --cc=JBottomley@parallels.com \
    --cc=arjan@linux.intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mroos@linux.ee \
    --cc=rjw@sisk.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.