Re: Build failure on ppc64 drivers/block/ps3disk.c

Jens Axboe
2007-09-20T13:32:18Z

On Thu, Sep 20 2007, Mel Gorman wrote:
> allmodconfig on ppc64 fails to build with the following error
>
> drivers/block/ps3disk.c: In function `ps3disk_probe':
> drivers/block/ps3disk.c:509: error: implicit declaration of function `blk_queue_issue_flush_fn'
> make[2]: *** [drivers/block/ps3disk.o] Error 1
> make[1]: *** [drivers/block] Error 2
> make: *** [drivers] Error 2
>
> The problem seems to be coming from git-block.patch. Jens, glancing through
> the patch, the function blk_queue_issue_flush_fn() seems to be have been
> made redundant. Based on that, this looks like the correct fix but it needs
> a review. Thanks
>
> Signed-off-by: Mel Gorman <mel@csn.ul.ie>
> ---
> drivers/block/ps3disk.c | 21 ---------------------
> 1 file changed, 21 deletions(-)
>
> diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/block/ps3disk.c linux-2.6.23-rc6-mm1-035_fix_ppc64_ps3disk/drivers/block/ps3disk.c
> --- linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/block/ps3disk.c 2007-09-11 03:50:29.000000000 +0100
> +++ linux-2.6.23-rc6-mm1-035_fix_ppc64_ps3disk/drivers/block/ps3disk.c 2007-09-20 14:17:43.000000000 +0100
> @@ -414,26 +414,6 @@ static void ps3disk_prepare_flush(struct
> req->cmd_type = REQ_TYPE_FLUSH;
> }
>
> -static int ps3disk_issue_flush(struct request_queue *q, struct gendisk *gendisk,
> - sector_t *sector)
> -{
> - struct ps3_storage_device *dev = q->queuedata;
> - struct request *req;
> - int res;
> -
> - dev_dbg(&dev->sbd.core, "%s:%u\n", __func__, __LINE__);
> -
> - req = blk_get_request(q, WRITE, __GFP_WAIT);
> - ps3disk_prepare_flush(q, req);
> - res = blk_execute_rq(q, gendisk, req, 0);
> - if (res)
> - dev_err(&dev->sbd.core, "%s:%u: flush request failed %d\n",
> - __func__, __LINE__, res);
> - blk_put_request(req);
> - return res;
> -}
> -
> -
> static unsigned long ps3disk_mask;
>
> static DEFINE_MUTEX(ps3disk_mask_mutex);
> @@ -506,7 +486,6 @@ static int __devinit ps3disk_probe(struc
> blk_queue_dma_alignment(queue, dev->blk_size-1);
> blk_queue_hardsect_size(queue, dev->blk_size);
>
> - blk_queue_issue_flush_fn(queue, ps3disk_issue_flush);
> blk_queue_ordered(queue, QUEUE_ORDERED_DRAIN_FLUSH,
> ps3disk_prepare_flush);

Thanks! The patch is correct, the prepare_flush() hook is now all that
is needed. I will apply this to my barrier branch, where this originates
from.

--
Jens Axboe