From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> To: axboe@kernel.dk Cc: snitzer@redhat.com, hch@lst.de, James.Bottomley@suse.de, linux-scsi@vger.kernel.org, dm-devel@redhat.com, fujita.tomonori@lab.ntt.co.jp, linux-kernel@vger.kernel.org Date: Thu, 1 Jul 2010 19:49:16 +0900 [thread overview] raw) This patchset fixes page leak issue in discard commands with unprep facility that James posted: http://marc.info/?l=linux-scsi&m=127791727508214&w=2 The 1/3 patch adds unprep facility to the block layer (identical to what James posted). The 2/3 patch frees a page for discard commands by using the unprep facility. James' original patch doesn't work since it accesses to rq->bio in q->unprep_rq_fn. We hit oops since q->unprep_rq_fn is called when all the data buffer (req->bio and scsi_data_buffer) in the request is freed. I use rq->buffer to keep track of an allocated page as the block layer sets rq->buffer to the address of bio's page. scsi-ml (and llds) don't use rq->buffer (rq->buffer is set to NULL). So I can't say that I like it lots. Any other way to do that? The 3/3 path just removes the dead code. This is against Jens' for-2.6.36. The git tree is also available: git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git unprep I'll update the discard FS request conversion on the top of this soon. But this can be applied independently (and fixes the memory leak). = block/blk-core.c | 25 +++++++++++++++++++++++++ block/blk-settings.c | 17 +++++++++++++++++ drivers/scsi/scsi_lib.c | 2 +- drivers/scsi/sd.c | 25 +++++++++++++++---------- include/linux/blkdev.h | 4 ++++ 5 files changed, 62 insertions(+), 11 deletions(-)
WARNING: multiple messages have this Message-ID (diff)
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> To: axboe@kernel.dk Cc: snitzer@redhat.com, hch@lst.de, James.Bottomley@suse.de, linux-scsi@vger.kernel.org, dm-devel@redhat.com, fujita.tomonori@lab.ntt.co.jp, linux-kernel@vger.kernel.org Subject: (unknown) Date: Thu, 1 Jul 2010 19:49:16 +0900 [thread overview] Message-ID: <1277981359-10717-1-git-send-email-fujita.tomonori@lab.ntt.co.jp> (raw) This patchset fixes page leak issue in discard commands with unprep facility that James posted: http://marc.info/?l=linux-scsi&m=127791727508214&w=2 The 1/3 patch adds unprep facility to the block layer (identical to what James posted). The 2/3 patch frees a page for discard commands by using the unprep facility. James' original patch doesn't work since it accesses to rq->bio in q->unprep_rq_fn. We hit oops since q->unprep_rq_fn is called when all the data buffer (req->bio and scsi_data_buffer) in the request is freed. I use rq->buffer to keep track of an allocated page as the block layer sets rq->buffer to the address of bio's page. scsi-ml (and llds) don't use rq->buffer (rq->buffer is set to NULL). So I can't say that I like it lots. Any other way to do that? The 3/3 path just removes the dead code. This is against Jens' for-2.6.36. The git tree is also available: git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git unprep I'll update the discard FS request conversion on the top of this soon. But this can be applied independently (and fixes the memory leak). = block/blk-core.c | 25 +++++++++++++++++++++++++ block/blk-settings.c | 17 +++++++++++++++++ drivers/scsi/scsi_lib.c | 2 +- drivers/scsi/sd.c | 25 +++++++++++++++---------- include/linux/blkdev.h | 4 ++++ 5 files changed, 62 insertions(+), 11 deletions(-)
next reply other threads:[~2010-07-01 10:51 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-07-01 10:49 FUJITA Tomonori [this message] 2010-07-01 10:49 ` (unknown) FUJITA Tomonori 2010-07-01 10:49 ` [PATCH 1/3] block: implement an unprep function corresponding directly to prep FUJITA Tomonori 2010-07-01 13:30 ` James Bottomley 2010-07-01 10:49 ` [PATCH 2/3] scsi: add sd_unprep_fn to free discard page FUJITA Tomonori 2010-07-01 13:03 ` [PATCH] scsi: address leak in the error path of discard page allocation Mike Snitzer 2010-07-01 20:15 ` Mike Snitzer 2010-07-01 20:19 ` James Bottomley 2010-07-01 21:07 ` Mike Snitzer 2010-07-02 10:49 ` Christoph Hellwig 2010-07-02 4:53 ` FUJITA Tomonori 2010-07-02 10:52 ` Christoph Hellwig 2010-07-02 13:08 ` Mike Snitzer 2010-07-05 4:00 ` FUJITA Tomonori 2010-07-02 10:48 ` [PATCH] " Christoph Hellwig 2010-07-02 10:48 ` [PATCH 2/3] scsi: add sd_unprep_fn to free discard page Christoph Hellwig 2010-07-05 10:07 ` Boaz Harrosh 2010-07-01 10:49 ` [PATCH 3/3] scsi: remove unused free discard page in sd_done FUJITA Tomonori 2010-07-02 10:52 ` Christoph Hellwig 2010-07-01 12:29 ` Jens Axboe 2010-07-01 13:40 ` add sd_unprep_fn to free discard page Boaz Harrosh 2010-07-01 13:57 ` James Bottomley
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=1277981359-10717-1-git-send-email-fujita.tomonori@lab.ntt.co.jp \ --to=fujita.tomonori@lab.ntt.co.jp \ --cc=James.Bottomley@suse.de \ --cc=axboe@kernel.dk \ --cc=dm-devel@redhat.com \ --cc=hch@lst.de \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=snitzer@redhat.com \ /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: linkBe 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.