Skip to contentSkip to conversation

block: restore original behavior of /proc/partition when there's no partition

PATCH In review Tejun Heo 2 participants 2 messages Aug 30, 2008 – Sep 1, 2008 Block layer

lore
Share & tools
lore

Tejun Heo

author
#0 lore raw

PATCH 1/1 block: restore original behavior of /proc/partition when there's no partition

/proc/partitions didn't use to write out the header if there was no partition. However, recent commit 66c64afe changed the behavior. This is nothing major but there's no reason to change user visible behavior without a good rationale. Restore the original behavior.

Note that 2.6.28 has clean up changes scheduled which will replace this rather hacky implementation.

Cc Greg KH <[email protected]>
Cc Kay Sievers <[email protected]>
---
 block/genhd.c |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
block/genhd.c +12 -1
index 656c2c7..e86b312 100644
@@ -309,7 +309,7 @@ static void *part_start(struct seq_file *part, loff_t *pos)
 	loff_t k = *pos;
 
 	if (!k)
-		seq_puts(part, "major minor  #blocks  name\n\n");
+		part->private = (void *)1LU;	/* tell show to print header */
 
 	mutex_lock(&block_class_lock);
 	dev = class_find_device(&block_class, NULL, &k, find_start);
@@ -351,6 +351,17 @@ static int show_partition(struct seq_file *part, void *v)
 	int n;
 	char buf[BDEVNAME_SIZE];
 
+	/*
+	 * Print header if start told us to do.  This is to preserve
+	 * the original behavior of not printing header if no
+	 * partition exists.  This hackery will be removed later with
+	 * class iteration clean up.
+	 */
+	if (part->private) {
+		seq_puts(part, "major minor  #blocks  name\n\n");
+		part->private = NULL;
+	}
+
 	/* Don't show non-partitionable removeable devices or empty devices */
 	if (!get_capacity(sgp) ||
 			(sgp->minors == 1 && (sgp->flags & GENHD_FL_REMOVABLE)))
#1 lore raw
Quoted 11 lines · Tejun Heo

/proc/partitions didn't use to write out the header if there was no partition. However, recent commit 66c64afe changed the behavior. This is nothing major but there's no reason to change user visible behavior without a good rationale. Restore the original behavior.

Note that 2.6.28 has clean up changes scheduled which will replace this rather hacky implementation.

Cc Greg KH <[email protected]>
Cc Kay Sievers <[email protected]>

I agree, queued up.

Signature · 1 line
Jens Axboe