public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] block: allow deleting zero length partition
@ 2008-07-14  6:06 Tejun Heo
  0 siblings, 0 replies; 2+ messages in thread
From: Tejun Heo @ 2008-07-14  6:06 UTC (permalink / raw)
  To: Jens Axboe, Linux Kernel Mailing List

delete_partition() was noop for zero length partition.  As the
addition code allows creating zero lenght partition and deletion is
assumed to always succeed, this causes memory leak for zero length
partitions.  Allow zero length partitions to end their meaningless
lives.

While at it, allow deleting zero lenght partition via
BLKPG_DEL_PARTITION ioctl too.

Signed-off-by: Tejun Heo <tj@kernel.org>
---
 block/ioctl.c         |    2 --
 fs/partitions/check.c |    2 --
 2 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/block/ioctl.c b/block/ioctl.c
index 52d6385..f0178c4 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@ -67,8 +67,6 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg __user
 		case BLKPG_DEL_PARTITION:
 			if (!disk->part[part-1])
 				return -ENXIO;
-			if (disk->part[part - 1]->nr_sects == 0)
-				return -ENXIO;
 			bdevp = bdget_disk(disk, part);
 			if (!bdevp)
 				return -ENOMEM;
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index 6149e4b..3e0bf3f 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -325,8 +325,6 @@ void delete_partition(struct gendisk *disk, int part)
 
 	if (!p)
 		return;
-	if (!p->nr_sects)
-		return;
 	disk->part[part-1] = NULL;
 	p->start_sect = 0;
 	p->nr_sects = 0;
-- 
1.5.4.5



^ permalink raw reply related	[flat|nested] 2+ messages in thread
* [PATCHSET 1/3 blk-for-2.6.28] block: misc fixes and improvements
@ 2008-08-25  9:15 Tejun Heo
  2008-08-25  9:15 ` [PATCH] block: allow deleting zero length partition Tejun Heo
  0 siblings, 1 reply; 2+ messages in thread
From: Tejun Heo @ 2008-08-25  9:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Abdel Benamrouche; +Cc: linux-kernel

Hello,

This patchset contains the following five patches containing misc
fixes and improvements.

  0001-block-fix-partition-info-printouts.patch
  0002-block-don-t-grab-block_class_lock-unnecessarily.patch
  0003-block-use-class_dev_iterator-instead-of-class_for_e.patch
  0004-block-allow-deleting-zero-length-partition.patch
  0005-block-update-add_partition-error-handling.patch

Recent block_class iteration updates 5c6f35c5..27f3025 introduced a
few bugs and trivial user visible behavior change.  0001-0003 update
those issues and simplify related code using new class iterator.

0004 fixes deletion of zero sized partitions.

d805dda4 tried to fix error handling path in add_partition() but had a
few problems.  0005 fixes those and moves busy partition check into
add_partition().

This patchset is against

  blk-for-2.6.28 (9abd7c437c02e7448fb1d2d3cfc0b9c1ab77cf2d)
+ [1] klist-dont-iterate-over-deleted-entries
+ [2] use-klist-for-class-device-list-and-implement-iterator

and available in the following git tree.

  http://git.kernel.org/?p=linux/kernel/git/tj/misc.git;a=shortlog;h=block-misc-fixes
  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git block-misc-fixes

with the following combined diffstat

 block/genhd.c         |  246 +++++++++++++++++++-------------------------------
 block/ioctl.c         |    9 -
 fs/partitions/check.c |   42 ++++----
 3 files changed, 121 insertions(+), 176 deletions(-)

Thanks.

--
tejun

[1] http://article.gmane.org/gmane.linux.kernel/725706
[2] http://article.gmane.org/gmane.linux.kernel/725708

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-08-25  9:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-14  6:06 [PATCH] block: allow deleting zero length partition Tejun Heo
  -- strict thread matches above, loose matches on Subject: below --
2008-08-25  9:15 [PATCHSET 1/3 blk-for-2.6.28] block: misc fixes and improvements Tejun Heo
2008-08-25  9:15 ` [PATCH] block: allow deleting zero length partition Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox