ide: factor out completion of taskfile from ide_end_drive_cmd()
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 27 Mar 2009 11:46:29 +0000 (12:46 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 27 Mar 2009 11:46:29 +0000 (12:46 +0100)
Factor out completion of taskfile from ide_end_drive_cmd()
to ide_complete_task().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-io.c

index 49b098de367c93f70c75ea3e66df8c7bd1832069..b8426e9c0906ad80c52d7983d5bfac54069728c9 100644 (file)
@@ -144,6 +144,20 @@ int ide_end_dequeued_request(ide_drive_t *drive, struct request *rq,
 }
 EXPORT_SYMBOL_GPL(ide_end_dequeued_request);
 
+static void ide_complete_task(ide_drive_t *drive, ide_task_t *task,
+                             u8 stat, u8 err)
+{
+       struct ide_taskfile *tf = &task->tf;
+
+       tf->error = err;
+       tf->status = stat;
+
+       drive->hwif->tp_ops->tf_read(drive, task);
+
+       if (task->tf_flags & IDE_TFLAG_DYN)
+               kfree(task);
+}
+
 /**
  *     ide_end_drive_cmd       -       end an explicit drive command
  *     @drive: command 
@@ -166,17 +180,8 @@ void ide_end_drive_cmd (ide_drive_t *drive, u8 stat, u8 err)
        if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
                ide_task_t *task = (ide_task_t *)rq->special;
 
-               if (task) {
-                       struct ide_taskfile *tf = &task->tf;
-
-                       tf->error = err;
-                       tf->status = stat;
-
-                       drive->hwif->tp_ops->tf_read(drive, task);
-
-                       if (task->tf_flags & IDE_TFLAG_DYN)
-                               kfree(task);
-               }
+               if (task)
+                       ide_complete_task(drive, task, stat, err);
        } else if (blk_pm_request(rq)) {
                ide_complete_pm_rq(drive, rq);
                return;