Skip to content

Commit

Permalink
block: restore original behavior of /proc/partition when there's no p…
Browse files Browse the repository at this point in the history
…artition

/proc/partitions didn't use to write out the header if there was no
partition.  However, recent commit 66c64af 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.

Signed-off-by: Tejun Heo <[email protected]>
Cc: Greg KH <[email protected]>
Cc: Kay Sievers <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
htejun authored and Jens Axboe committed Sep 1, 2008
1 parent bb23b43 commit ddef43a
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion block/genhd.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,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);
Expand Down Expand Up @@ -349,6 +349,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)))
Expand Down

0 comments on commit ddef43a

Please sign in to comment.