Messages in this thread Patch in this message | | | Date | Thu, 13 Aug 2009 12:50:49 -0700 | From | Greg KH <> | Subject | [patch 74/74] ide: fix memory leak when flush command is issued |
| |
2.6.30-stable review patch. If anyone has any objections, please let us know.
------------------
From: Maxime Bizon <mbizon@freebox.fr>
commit bc146d23d1358af43f03793c3ad8c9f16bbcffcb upstream.
I'm using ide on 2.6.30.1 with xfs filesystem. I noticed a kernel memory leak after writing lots of data, the kmalloc-96 slab cache keeps growing. It seems the struct ide_cmd kmalloced by idedisk_prepare_flush is never kfreed.
Commit a09485df9cda49fbde2766c86eb18a9cae585162 ("ide: move request type specific code from ide_end_drive_cmd() to callers (v3)") and f505d49ffd25ed062e76ffd17568d3937fcd338c ("ide: fix barriers support") cause this regression, cmd->rq must now be set for ide_complete_cmd to honor the IDE_TFLAG_DYN flag.
Signed-off-by: Maxime Bizon <mbizon@freebox.fr> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Cc: Simon Kirby <sim@netnation.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- drivers/ide/ide-disk.c | 1 + 1 file changed, 1 insertion(+)
--- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c @@ -413,6 +413,7 @@ static void idedisk_prepare_flush(struct rq->cmd_type = REQ_TYPE_ATA_TASKFILE; rq->cmd_flags |= REQ_SOFTBARRIER; rq->special = cmd; + cmd->rq = rq; } ide_devset_get(multcount, mult_count);
| |